Re: [PATCH] powerpc/pseries: Make vio and ibmebus initcalls pseries specific
Hi Oliver, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on scottwood/next v5.7-rc2 next-20200420] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Oliver-O-Halloran/powerpc-pseries-Make-vio-and-ibmebus-initcalls-pseries-specific/20200417-121826 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-defconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/powerpc/platforms/pseries/ibmebus.c:467:1: error: data definition has no type or storage class [-Werror] 467 | machine_postcore_initcall(pseries, ibmebus_bus_init); | ^ >> arch/powerpc/platforms/pseries/ibmebus.c:467:1: error: type defaults to >> 'int' in declaration of 'machine_postcore_initcall' [-Werror=implicit-int] arch/powerpc/platforms/pseries/ibmebus.c:467:1: error: parameter names (without types) in function declaration [-Werror] >> arch/powerpc/platforms/pseries/ibmebus.c:436:19: error: 'ibmebus_bus_init' >> defined but not used [-Werror=unused-function] 436 | static int __init ibmebus_bus_init(void) | ^~~~ cc1: all warnings being treated as errors vim +467 arch/powerpc/platforms/pseries/ibmebus.c 435 > 436 static int __init ibmebus_bus_init(void) 437 { 438 int err; 439 440 printk(KERN_INFO "IBM eBus Device Driver\n"); 441 442 err = bus_register(&ibmebus_bus_type); 443 if (err) { 444 printk(KERN_ERR "%s: failed to register IBM eBus.\n", 445 __func__); 446 return err; 447 } 448 449 err = device_register(&ibmebus_bus_device); 450 if (err) { 451 printk(KERN_WARNING "%s: device_register returned %i\n", 452 __func__, err); 453 bus_unregister(&ibmebus_bus_type); 454 455 return err; 456 } 457 458 err = ibmebus_create_devices(ibmebus_matches); 459 if (err) { 460 device_unregister(&ibmebus_bus_device); 461 bus_unregister(&ibmebus_bus_type); 462 return err; 463 } 464 465 return 0; 466 } > 467 machine_postcore_initcall(pseries, ibmebus_bus_init); --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org .config.gz Description: application/gzip
Re: [PATCH] powerpc/pseries: Make vio and ibmebus initcalls pseries specific
On 4/16/20 9:07 PM, Oliver O'Halloran wrote: > The vio and ibmebus buses are used for pseries specific paravirtualised > devices and currently they're initialised by the generic initcall types. > This is mostly fine, but it can result in some nuisance errors in dmesg > when booting on PowerNV on some OSes, e.g. > > [2.984439] synth uevent: /devices/vio: failed to send uevent > [2.984442] vio vio: uevent: failed to send synthetic uevent > [ 17.968551] synth uevent: /devices/vio: failed to send uevent > [ 17.968554] vio vio: uevent: failed to send synthetic uevent > > We don't see anything similar for the ibmebus because that depends on > !CONFIG_LITTLE_ENDIAN. > > This patch squashes those by switching to using machine_*_initcall() so the > bus > type is only registered when the kernel is running on a pseries machine. > > Signed-off-by: Oliver O'Halloran > --- Reviewed-by: Tyrel Datwyler
[PATCH] powerpc/pseries: Make vio and ibmebus initcalls pseries specific
The vio and ibmebus buses are used for pseries specific paravirtualised devices and currently they're initialised by the generic initcall types. This is mostly fine, but it can result in some nuisance errors in dmesg when booting on PowerNV on some OSes, e.g. [2.984439] synth uevent: /devices/vio: failed to send uevent [2.984442] vio vio: uevent: failed to send synthetic uevent [ 17.968551] synth uevent: /devices/vio: failed to send uevent [ 17.968554] vio vio: uevent: failed to send synthetic uevent We don't see anything similar for the ibmebus because that depends on !CONFIG_LITTLE_ENDIAN. This patch squashes those by switching to using machine_*_initcall() so the bus type is only registered when the kernel is running on a pseries machine. Signed-off-by: Oliver O'Halloran --- arch/powerpc/platforms/pseries/ibmebus.c | 2 +- arch/powerpc/platforms/pseries/vio.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/platforms/pseries/ibmebus.c b/arch/powerpc/platforms/pseries/ibmebus.c index b91eb09..4cd9e65 100644 --- a/arch/powerpc/platforms/pseries/ibmebus.c +++ b/arch/powerpc/platforms/pseries/ibmebus.c @@ -464,4 +464,4 @@ static int __init ibmebus_bus_init(void) return 0; } -postcore_initcall(ibmebus_bus_init); +machine_postcore_initcall(pseries, ibmebus_bus_init); diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c index 37f1f25..33be37e 100644 --- a/arch/powerpc/platforms/pseries/vio.c +++ b/arch/powerpc/platforms/pseries/vio.c @@ -1513,7 +1513,7 @@ static int __init vio_bus_init(void) return 0; } -postcore_initcall(vio_bus_init); +machine_postcore_initcall(pseries, vio_bus_init); static int __init vio_device_init(void) { @@ -1522,7 +1522,7 @@ static int __init vio_device_init(void) return 0; } -device_initcall(vio_device_init); +machine_device_initcall(pseries, vio_device_init); static ssize_t name_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -1703,4 +1703,4 @@ static int __init vio_init(void) dma_debug_add_bus(&vio_bus_type); return 0; } -fs_initcall(vio_init); +machine_fs_initcall(pseries, vio_init); -- 2.9.5