[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