Message ID | 20240930180036.87598-10-rosenp@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ibm: emac: more cleanups | expand |
Hi Rosen, kernel test robot noticed the following build errors: [auto build test ERROR on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-ibm-emac-remove-custom-init-exit-functions/20241001-020553 base: net-next/main patch link: https://lore.kernel.org/r/20240930180036.87598-10-rosenp%40gmail.com patch subject: [PATCH net-next 09/13] net: ibm: emac: rgmii: devm_platform_get_resource config: powerpc-fsp2_defconfig (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/config) compiler: powerpc-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410011636.QtBtiUKi-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/net/ethernet/ibm/emac/rgmii.c: In function 'rgmii_probe': >> drivers/net/ethernet/ibm/emac/rgmii.c:229:21: error: implicit declaration of function 'devm_platform_get_resource'; did you mean 'platform_get_resource'? [-Wimplicit-function-declaration] 229 | dev->base = devm_platform_get_resource(ofdev, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | platform_get_resource >> drivers/net/ethernet/ibm/emac/rgmii.c:229:19: error: assignment to 'struct rgmii_regs *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 229 | dev->base = devm_platform_get_resource(ofdev, 0); | ^ vim +229 drivers/net/ethernet/ibm/emac/rgmii.c 215 216 217 static int rgmii_probe(struct platform_device *ofdev) 218 { 219 struct rgmii_instance *dev; 220 221 dev = devm_kzalloc(&ofdev->dev, sizeof(struct rgmii_instance), 222 GFP_KERNEL); 223 if (!dev) 224 return -ENOMEM; 225 226 mutex_init(&dev->lock); 227 dev->ofdev = ofdev; 228 > 229 dev->base = devm_platform_get_resource(ofdev, 0); 230 if (IS_ERR(dev->base)) { 231 dev_err(&ofdev->dev, "can't map device registers"); 232 return PTR_ERR(dev->base); 233 } 234 235 /* Check for RGMII flags */ 236 if (of_property_read_bool(ofdev->dev.of_node, "has-mdio")) 237 dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO; 238 239 /* CAB lacks the right properties, fix this up */ 240 if (of_device_is_compatible(ofdev->dev.of_node, "ibm,rgmii-axon")) 241 dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO; 242 243 DBG2(dev, " Boot FER = 0x%08x, SSR = 0x%08x\n", 244 in_be32(&dev->base->fer), in_be32(&dev->base->ssr)); 245 246 /* Disable all inputs by default */ 247 out_be32(&dev->base->fer, 0); 248 249 printk(KERN_INFO 250 "RGMII %pOF initialized with%s MDIO support\n", 251 ofdev->dev.of_node, 252 (dev->flags & EMAC_RGMII_FLAG_HAS_MDIO) ? "" : "out"); 253 254 wmb(); 255 platform_set_drvdata(ofdev, dev); 256 257 return 0; 258 } 259
Hi Rosen, kernel test robot noticed the following build errors: [auto build test ERROR on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-ibm-emac-remove-custom-init-exit-functions/20241001-020553 base: net-next/main patch link: https://lore.kernel.org/r/20240930180036.87598-10-rosenp%40gmail.com patch subject: [PATCH net-next 09/13] net: ibm: emac: rgmii: devm_platform_get_resource config: powerpc-canyonlands_defconfig (https://download.01.org/0day-ci/archive/20241001/202410011626.D4gEmLU8-lkp@intel.com/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 7773243d9916f98ba0ffce0c3a960e4aa9f03e81) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241001/202410011626.D4gEmLU8-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410011626.D4gEmLU8-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from drivers/net/ethernet/ibm/emac/rgmii.c:21: In file included from include/linux/ethtool.h:18: In file included from include/linux/if_ether.h:19: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:8: In file included from include/linux/cacheflush.h:5: In file included from arch/powerpc/include/asm/cacheflush.h:7: In file included from include/linux/mm.h:2213: include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> drivers/net/ethernet/ibm/emac/rgmii.c:229:14: error: call to undeclared function 'devm_platform_get_resource'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 229 | dev->base = devm_platform_get_resource(ofdev, 0); | ^ drivers/net/ethernet/ibm/emac/rgmii.c:229:14: note: did you mean 'platform_get_resource'? include/linux/platform_device.h:58:25: note: 'platform_get_resource' declared here 58 | extern struct resource *platform_get_resource(struct platform_device *, | ^ >> drivers/net/ethernet/ibm/emac/rgmii.c:229:12: error: incompatible integer to pointer conversion assigning to 'struct rgmii_regs *' from 'int' [-Wint-conversion] 229 | dev->base = devm_platform_get_resource(ofdev, 0); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 2 errors generated. vim +/devm_platform_get_resource +229 drivers/net/ethernet/ibm/emac/rgmii.c 215 216 217 static int rgmii_probe(struct platform_device *ofdev) 218 { 219 struct rgmii_instance *dev; 220 221 dev = devm_kzalloc(&ofdev->dev, sizeof(struct rgmii_instance), 222 GFP_KERNEL); 223 if (!dev) 224 return -ENOMEM; 225 226 mutex_init(&dev->lock); 227 dev->ofdev = ofdev; 228 > 229 dev->base = devm_platform_get_resource(ofdev, 0); 230 if (IS_ERR(dev->base)) { 231 dev_err(&ofdev->dev, "can't map device registers"); 232 return PTR_ERR(dev->base); 233 } 234 235 /* Check for RGMII flags */ 236 if (of_property_read_bool(ofdev->dev.of_node, "has-mdio")) 237 dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO; 238 239 /* CAB lacks the right properties, fix this up */ 240 if (of_device_is_compatible(ofdev->dev.of_node, "ibm,rgmii-axon")) 241 dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO; 242 243 DBG2(dev, " Boot FER = 0x%08x, SSR = 0x%08x\n", 244 in_be32(&dev->base->fer), in_be32(&dev->base->ssr)); 245 246 /* Disable all inputs by default */ 247 out_be32(&dev->base->fer, 0); 248 249 printk(KERN_INFO 250 "RGMII %pOF initialized with%s MDIO support\n", 251 ofdev->dev.of_node, 252 (dev->flags & EMAC_RGMII_FLAG_HAS_MDIO) ? "" : "out"); 253 254 wmb(); 255 platform_set_drvdata(ofdev, dev); 256 257 return 0; 258 } 259
On Tue, Oct 01, 2024 at 04:24:39PM +0800, kernel test robot wrote: > Hi Rosen, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on net-next/main] > > url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-ibm-emac-remove-custom-init-exit-functions/20241001-020553 > base: net-next/main > patch link: https://lore.kernel.org/r/20240930180036.87598-10-rosenp%40gmail.com > patch subject: [PATCH net-next 09/13] net: ibm: emac: rgmii: devm_platform_get_resource > config: powerpc-fsp2_defconfig (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/config) > compiler: powerpc-linux-gcc (GCC) 14.1.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202410011636.QtBtiUKi-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > drivers/net/ethernet/ibm/emac/rgmii.c: In function 'rgmii_probe': > >> drivers/net/ethernet/ibm/emac/rgmii.c:229:21: error: implicit declaration of function 'devm_platform_get_resource'; did you mean 'platform_get_resource'? [-Wimplicit-function-declaration] > 229 | dev->base = devm_platform_get_resource(ofdev, 0); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | platform_get_resource Hi Rosen, I'm curious to know where devm_platform_get_resource comes from. In any case, it would need to be present in net-next, when patches that use it are posted, for use of it to be accepted there.
On Tue, Oct 1, 2024 at 6:25 AM Simon Horman <horms@kernel.org> wrote: > > On Tue, Oct 01, 2024 at 04:24:39PM +0800, kernel test robot wrote: > > Hi Rosen, > > > > kernel test robot noticed the following build errors: > > > > [auto build test ERROR on net-next/main] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Rosen-Penev/net-ibm-emac-remove-custom-init-exit-functions/20241001-020553 > > base: net-next/main > > patch link: https://lore.kernel.org/r/20240930180036.87598-10-rosenp%40gmail.com > > patch subject: [PATCH net-next 09/13] net: ibm: emac: rgmii: devm_platform_get_resource > > config: powerpc-fsp2_defconfig (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/config) > > compiler: powerpc-linux-gcc (GCC) 14.1.0 > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241001/202410011636.QtBtiUKi-lkp@intel.com/reproduce) > > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > > the same patch/commit), kindly add following tags > > | Reported-by: kernel test robot <lkp@intel.com> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202410011636.QtBtiUKi-lkp@intel.com/ > > > > All errors (new ones prefixed by >>): > > > > drivers/net/ethernet/ibm/emac/rgmii.c: In function 'rgmii_probe': > > >> drivers/net/ethernet/ibm/emac/rgmii.c:229:21: error: implicit declaration of function 'devm_platform_get_resource'; did you mean 'platform_get_resource'? [-Wimplicit-function-declaration] > > 229 | dev->base = devm_platform_get_resource(ofdev, 0); > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > > | platform_get_resource > > Hi Rosen, > > I'm curious to know where devm_platform_get_resource comes from. Lovely typo. > > In any case, it would need to be present in net-next, when patches that use > it are posted, for use of it to be accepted there.
diff --git a/drivers/net/ethernet/ibm/emac/rgmii.c b/drivers/net/ethernet/ibm/emac/rgmii.c index 8c646a5e5c56..d116de4e38a0 100644 --- a/drivers/net/ethernet/ibm/emac/rgmii.c +++ b/drivers/net/ethernet/ibm/emac/rgmii.c @@ -216,9 +216,7 @@ void *rgmii_dump_regs(struct platform_device *ofdev, void *buf) static int rgmii_probe(struct platform_device *ofdev) { - struct device_node *np = ofdev->dev.of_node; struct rgmii_instance *dev; - struct resource regs; dev = devm_kzalloc(&ofdev->dev, sizeof(struct rgmii_instance), GFP_KERNEL); @@ -228,16 +226,10 @@ static int rgmii_probe(struct platform_device *ofdev) mutex_init(&dev->lock); dev->ofdev = ofdev; - if (of_address_to_resource(np, 0, ®s)) { - printk(KERN_ERR "%pOF: Can't get registers address\n", np); - return -ENXIO; - } - - dev->base = (struct rgmii_regs __iomem *)ioremap(regs.start, - sizeof(struct rgmii_regs)); - if (dev->base == NULL) { - printk(KERN_ERR "%pOF: Can't map device registers!\n", np); - return -ENOMEM; + dev->base = devm_platform_get_resource(ofdev, 0); + if (IS_ERR(dev->base)) { + dev_err(&ofdev->dev, "can't map device registers"); + return PTR_ERR(dev->base); } /* Check for RGMII flags */ @@ -265,15 +257,6 @@ static int rgmii_probe(struct platform_device *ofdev) return 0; } -static void rgmii_remove(struct platform_device *ofdev) -{ - struct rgmii_instance *dev = platform_get_drvdata(ofdev); - - WARN_ON(dev->users != 0); - - iounmap(dev->base); -} - static const struct of_device_id rgmii_match[] = { { @@ -291,7 +274,6 @@ static struct platform_driver rgmii_driver = { .of_match_table = rgmii_match, }, .probe = rgmii_probe, - .remove_new = rgmii_remove, }; module_platform_driver(rgmii_driver);
Simplifies the probe function by a bit and allows removing the _remove function such that devm now handles all cleanup. printk gets converted to dev_err as np is now gone. Signed-off-by: Rosen Penev <rosenp@gmail.com> --- drivers/net/ethernet/ibm/emac/rgmii.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-)