Paul Menzel <pmen...@molgen.mpg.de> writes: > Am 16.03.21 um 02:09 schrieb Michael Ellerman: >> The vio bus is a fake bus, which we use on pseries LPARs (guests) to >> discover devices provided by the hypervisor. There's no need or sense >> in creating the vio bus on bare metal systems. >> >> Which is why commit 4336b9337824 ("powerpc/pseries: Make vio and >> ibmebus initcalls pseries specific") made the initialisation of the >> vio bus only happen in LPARs. >> >> However as a result of that commit we now see errors at boot on bare >> metal systems: >> >> Driver 'hvc_console' was unable to register with bus_type 'vio' because >> the bus was not initialized. >> Driver 'tpm_ibmvtpm' was unable to register with bus_type 'vio' because >> the bus was not initialized. >> >> This happens because those drivers are built-in, and are calling >> vio_register_driver(). It in turn calls driver_register() with a >> reference to vio_bus_type, but we haven't registered vio_bus_type with >> the driver core. >> >> Fix it by also guarding vio_register_driver() with a check to see if >> we are on pseries. >> >> Fixes: 4336b9337824 ("powerpc/pseries: Make vio and ibmebus initcalls >> pseries specific") >> Reported-by: Paul Menzel <pmen...@molgen.mpg.de> >> Signed-off-by: Michael Ellerman <m...@ellerman.id.au> >> --- >> arch/powerpc/platforms/pseries/vio.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/arch/powerpc/platforms/pseries/vio.c >> b/arch/powerpc/platforms/pseries/vio.c >> index 9cb4fc839fd5..429053d0402a 100644 >> --- a/arch/powerpc/platforms/pseries/vio.c >> +++ b/arch/powerpc/platforms/pseries/vio.c >> @@ -1285,6 +1285,10 @@ static int vio_bus_remove(struct device *dev) >> int __vio_register_driver(struct vio_driver *viodrv, struct module *owner, >> const char *mod_name) >> { >> + // vio_bus_type is only initialised for pseries >> + if (!machine_is(pseries)) >> + return -ENODEV; >> + >> pr_debug("%s: driver %s registering\n", __func__, viodrv->name); >> >> /* fill in 'struct driver' fields */ > > Thank you. The errors are gone now. > > Tested-by: Paul Menzel <pmen...@molgen.mpg.de> # IBM S822L (POWER8) > > As it fixes a commit from Linux 5.8, should it be tagged for the stable > releases, or is it going to be picked up automatically due to the Fixes tag?
It's not what I'd describe as a bad bug, so I'm not that inclined to tag it for stable. But given it has a Fixes tag, and is quite small, the bots will probably backport it automatically. cheers