Re: git: b076d8d54c2f - main - mptable_hostb: Use legacy_get_pcibus() to fetch PCI bus number.

From: FreeBSD User <freebsd_at_walstatt-de.de>
Date: Thu, 23 Jun 2022 21:56:22 UTC
Am Thu, 23 Jun 2022 17:52:36 GMT
John Baldwin <jhb@FreeBSD.org> schrieb:

> The branch main has been updated by jhb:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=b076d8d54c2fd91a35aad6931d0bfa2aa0122036
> 
> commit b076d8d54c2fd91a35aad6931d0bfa2aa0122036
> Author:     John Baldwin <jhb@FreeBSD.org>
> AuthorDate: 2022-06-23 17:49:09 +0000
> Commit:     John Baldwin <jhb@FreeBSD.org>
> CommitDate: 2022-06-23 17:49:09 +0000
> 
>     mptable_hostb: Use legacy_get_pcibus() to fetch PCI bus number.
>     
>     The mptable_hostb driver is a child of legacy0 and has legacy bus
>     ivars, not PCI or PCI bridge ivars.
>     
>     PR:             264819
>     Reported by:    Dennis Clarke <dclarke@blastwave.org>
>     Diagnosed by:   avg
>     Reviewed by:    avg
>     MFC after:      1 week
>     Differential Revision:  https://reviews.freebsd.org/D35548
> ---
>  sys/x86/x86/mptable.c     | 2 +-
>  sys/x86/x86/mptable_pci.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sys/x86/x86/mptable.c b/sys/x86/x86/mptable.c
> index 5cc42863cf38..c5f113c55a2b 100644
> --- a/sys/x86/x86/mptable.c
> +++ b/sys/x86/x86/mptable.c
> @@ -1250,7 +1250,7 @@ mptable_pci_host_res_init(device_t pcib)
>  	struct host_res_args args;
>  
>  	KASSERT(pci0 != -1, ("do not know how to map PCI bus IDs"));
> -	args.bus = pci_get_bus(pcib) + pci0;
> +	args.bus = legacy_get_pcibus(pcib) + pci0;
>  	args.dev = pcib;
>  	args.sc = device_get_softc(pcib);
>  	if (pcib_host_res_init(pcib, &args.sc->sc_host_res) != 0)
> diff --git a/sys/x86/x86/mptable_pci.c b/sys/x86/x86/mptable_pci.c
> index 1a1d98eafc39..8a1d2abe46fe 100644
> --- a/sys/x86/x86/mptable_pci.c
> +++ b/sys/x86/x86/mptable_pci.c
> @@ -57,7 +57,7 @@ mptable_hostb_probe(device_t dev)
>  
>  	if (pci_cfgregopen() == 0)
>  		return (ENXIO);
> -	if (mptable_pci_probe_table(pcib_get_bus(dev)) != 0)
> +	if (mptable_pci_probe_table(legacy_get_pcibus(dev)) != 0)
>  		return (ENXIO);
>  	device_set_desc(dev, "MPTable Host-PCI bridge");
>  	return (0);
> 

I think this commit broke buildkernel on our hosts (custom kernel):


[...]

/usr/src/sys/x86/x86/mptable.c:1253:13: error: implicit declaration of function
'legacy_get_pcibus' is invalid in C99 [-Werror,-Wimplicit-function-declaration] args.bus =
legacy_get_pcibus(pcib) + pci0; ^ 1 error generated. *** [mptable.o] Error code 1


Kind regards,

oh

-- 
O. Hartmann