git: 5ad6d28cbe6b - main - enetc: Support building the driver as a loadable module.

John Baldwin jhb at FreeBSD.org
Wed Aug 4 18:18:07 UTC 2021


On 8/3/21 3:08 AM, Marcin Wojtas wrote:
> The branch main has been updated by mw:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=5ad6d28cbe6b3ff85e49607a7e04cb68db3ed6df
> 
> commit 5ad6d28cbe6b3ff85e49607a7e04cb68db3ed6df
> Author:     Kornel Duleba <mindal at semihalf.com>
> AuthorDate: 2021-07-28 09:23:23 +0000
> Commit:     Marcin Wojtas <mw at FreeBSD.org>
> CommitDate: 2021-08-03 10:07:49 +0000
> 
>      enetc: Support building the driver as a loadable module.
>      
>      Function level reset has to be done in attach in order to put the
>      hardware in a known state before configuring it.
>      The order of DRIVER_MODULEs was changed to ensure that the miibus driver
>      is loaded when mii_attach is called.
>      
>      Obtained from: Semihalf
>      Sponsored by: Alstom Group
> ---
>   sys/dev/enetc/if_enetc.c   | 6 +++++-
>   sys/modules/Makefile       | 2 ++
>   sys/modules/enetc/Makefile | 8 ++++++++
>   3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/sys/dev/enetc/if_enetc.c b/sys/dev/enetc/if_enetc.c
> index 54cdc6ea9ad4..46327eb419bf 100644
> --- a/sys/dev/enetc/if_enetc.c
> +++ b/sys/dev/enetc/if_enetc.c
> @@ -158,8 +158,8 @@ static driver_t enetc_driver = {
>   };
>   
>   static devclass_t enetc_devclass;
> -DRIVER_MODULE(enetc, pci, enetc_driver, enetc_devclass, NULL, NULL);
>   DRIVER_MODULE(miibus, enetc, miibus_driver, miibus_devclass, NULL, NULL);
> +DRIVER_MODULE(enetc, pci, enetc_driver, enetc_devclass, NULL, NULL);
>   MODULE_VERSION(enetc, 1);

This is not the right way to fix this as the toolchain is free to reorder
symbols.  You should instead use 'DRIVER_MODULE_ORDERED(..., SI_ORDER_LAST)'
for enetc so that the miibus driver is registered first.

-- 
John Baldwin


More information about the dev-commits-src-all mailing list