[PATCH] powerpc/pseries: Only register vio drivers if vio bus exists

Tyrel Datwyler tyreld at linux.ibm.com
Wed Mar 31 06:57:37 AEDT 2021


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 <pmenzel at molgen.mpg.de>
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---

Reviewed-by: Tyrel Datwyler <tyreld at linux.ibm.com>


More information about the Linuxppc-dev mailing list