On 3/15/21 6:09 PM, Michael Ellerman wrote: > 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> > ---
Reviewed-by: Tyrel Datwyler <tyr...@linux.ibm.com>