Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: simplify resource acquisition + ioremap

get resource + request_mem_region + ioremap can all be done by a single
function.

Replace them with devm_platform_get_and_ioremap_resource or\
devm_platform_ioremap_resource where res is not used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> # sja1000_platform.c
Link: https://patch.msgid.link/20241203231337.182391-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Rosen Penev and committed by
Jakub Kicinski
e36d46b9 51db5c89

+17 -83
+3 -12
drivers/net/can/sja1000/sja1000_platform.c
··· 230 230 return -ENODEV; 231 231 } 232 232 233 - res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 234 - if (!res_mem) 235 - return -ENODEV; 236 - 237 - if (!devm_request_mem_region(&pdev->dev, res_mem->start, 238 - resource_size(res_mem), DRV_NAME)) 239 - return -EBUSY; 240 - 241 - addr = devm_ioremap(&pdev->dev, res_mem->start, 242 - resource_size(res_mem)); 243 - if (!addr) 244 - return -ENOMEM; 233 + addr = devm_platform_get_and_ioremap_resource(pdev, 0, &res_mem); 234 + if (IS_ERR(addr)) 235 + return PTR_ERR(addr); 245 236 246 237 if (of) { 247 238 irq = platform_get_irq(pdev, 0);
+7 -28
drivers/net/ethernet/freescale/fman/fman.c
··· 2690 2690 { 2691 2691 struct fman *fman; 2692 2692 struct device_node *fm_node, *muram_node; 2693 + void __iomem *base_addr; 2693 2694 struct resource *res; 2694 2695 u32 val, range[2]; 2695 2696 int err, irq; 2696 2697 struct clk *clk; 2697 2698 u32 clk_rate; 2698 - phys_addr_t phys_base_addr; 2699 - resource_size_t mem_size; 2700 2699 2701 2700 fman = kzalloc(sizeof(*fman), GFP_KERNEL); 2702 2701 if (!fman) ··· 2722 2723 if (err < 0) 2723 2724 goto fman_node_put; 2724 2725 fman->dts_params.err_irq = err; 2725 - 2726 - /* Get the FM address */ 2727 - res = platform_get_resource(of_dev, IORESOURCE_MEM, 0); 2728 - if (!res) { 2729 - err = -EINVAL; 2730 - dev_err(&of_dev->dev, "%s: Can't get FMan memory resource\n", 2731 - __func__); 2732 - goto fman_node_put; 2733 - } 2734 - 2735 - phys_base_addr = res->start; 2736 - mem_size = resource_size(res); 2737 2726 2738 2727 clk = of_clk_get(fm_node, 0); 2739 2728 if (IS_ERR(clk)) { ··· 2790 2803 } 2791 2804 } 2792 2805 2793 - fman->dts_params.res = 2794 - devm_request_mem_region(&of_dev->dev, phys_base_addr, 2795 - mem_size, "fman"); 2796 - if (!fman->dts_params.res) { 2797 - err = -EBUSY; 2798 - dev_err(&of_dev->dev, "%s: request_mem_region() failed\n", 2799 - __func__); 2800 - goto fman_free; 2801 - } 2802 - 2803 - fman->dts_params.base_addr = 2804 - devm_ioremap(&of_dev->dev, phys_base_addr, mem_size); 2805 - if (!fman->dts_params.base_addr) { 2806 - err = -ENOMEM; 2806 + base_addr = devm_platform_get_and_ioremap_resource(of_dev, 0, &res); 2807 + if (IS_ERR(base_addr)) { 2808 + err = PTR_ERR(base_addr); 2807 2809 dev_err(&of_dev->dev, "%s: devm_ioremap() failed\n", __func__); 2808 2810 goto fman_free; 2809 2811 } 2812 + 2813 + fman->dts_params.base_addr = base_addr; 2814 + fman->dts_params.res = res; 2810 2815 2811 2816 fman->dev = &of_dev->dev; 2812 2817
+3 -22
drivers/net/ethernet/lantiq_etop.c
··· 90 90 struct net_device *netdev; 91 91 struct platform_device *pdev; 92 92 struct ltq_eth_data *pldata; 93 - struct resource *res; 94 93 95 94 struct mii_bus *mii_bus; 96 95 ··· 642 643 { 643 644 struct net_device *dev; 644 645 struct ltq_etop_priv *priv; 645 - struct resource *res; 646 646 int err; 647 647 int i; 648 648 649 - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 650 - if (!res) { 651 - dev_err(&pdev->dev, "failed to get etop resource\n"); 652 - err = -ENOENT; 653 - goto err_out; 654 - } 655 - 656 - res = devm_request_mem_region(&pdev->dev, res->start, 657 - resource_size(res), dev_name(&pdev->dev)); 658 - if (!res) { 659 - dev_err(&pdev->dev, "failed to request etop resource\n"); 660 - err = -EBUSY; 661 - goto err_out; 662 - } 663 - 664 - ltq_etop_membase = devm_ioremap(&pdev->dev, res->start, 665 - resource_size(res)); 666 - if (!ltq_etop_membase) { 649 + ltq_etop_membase = devm_platform_ioremap_resource(pdev, 0); 650 + if (IS_ERR(ltq_etop_membase)) { 667 651 dev_err(&pdev->dev, "failed to remap etop engine %d\n", 668 652 pdev->id); 669 - err = -ENOMEM; 653 + err = PTR_ERR(ltq_etop_membase); 670 654 goto err_out; 671 655 } 672 656 ··· 661 679 dev->netdev_ops = &ltq_eth_netdev_ops; 662 680 dev->ethtool_ops = &ltq_etop_ethtool_ops; 663 681 priv = netdev_priv(dev); 664 - priv->res = res; 665 682 priv->pdev = pdev; 666 683 priv->pldata = dev_get_platdata(&pdev->dev); 667 684 priv->netdev = dev;
+4 -21
drivers/net/mdio/mdio-octeon.c
··· 17 17 { 18 18 struct cavium_mdiobus *bus; 19 19 struct mii_bus *mii_bus; 20 - struct resource *res_mem; 21 - resource_size_t mdio_phys; 22 - resource_size_t regsize; 23 20 union cvmx_smix_en smi_en; 24 - int err = -ENOENT; 21 + int err; 25 22 26 23 mii_bus = devm_mdiobus_alloc_size(&pdev->dev, sizeof(*bus)); 27 24 if (!mii_bus) 28 25 return -ENOMEM; 29 26 30 - res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 31 - if (res_mem == NULL) { 32 - dev_err(&pdev->dev, "found no memory resource\n"); 33 - return -ENXIO; 34 - } 35 - 36 27 bus = mii_bus->priv; 37 28 bus->mii_bus = mii_bus; 38 - mdio_phys = res_mem->start; 39 - regsize = resource_size(res_mem); 40 29 41 - if (!devm_request_mem_region(&pdev->dev, mdio_phys, regsize, 42 - res_mem->name)) { 43 - dev_err(&pdev->dev, "request_mem_region failed\n"); 44 - return -ENXIO; 45 - } 46 - 47 - bus->register_base = devm_ioremap(&pdev->dev, mdio_phys, regsize); 48 - if (!bus->register_base) { 30 + bus->register_base = devm_platform_ioremap_resource(pdev, 0); 31 + if (IS_ERR(bus->register_base)) { 49 32 dev_err(&pdev->dev, "dev_ioremap failed\n"); 50 - return -ENOMEM; 33 + return PTR_ERR(bus->register_base); 51 34 } 52 35 53 36 smi_en.u64 = 0;