Re: [PATCH] powerpc/pseries: Make vio and ibmebus initcalls pseries specific

2020-04-21 Thread kbuild test robot
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

2020-04-17 Thread Tyrel Datwyler
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

2020-04-16 Thread Oliver O'Halloran
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