Re: [tip:x86/urgent] x86/quirks: Add early quirk to reset Apple AirPort card

From: Ingo Molnar
Date: Fri Jun 10 2016 - 07:58:57 EST



* Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

> On 6/9/16, Lukas Wunner <lukas@xxxxxxxxx> wrote:
> >
> > Well, the PCI core would also scan such a bus twice AFAICS.
> > And the performance penalty of scanning it twice seems negligible.
> > Early quirks can prevent double execution by setting QFLAG_APPLY_ONCE.
> > (Three quirks have set that flag already.)
> >
> > So I think this shouldn't be a concern.
>
> I don't know. I would like see sth like following, and that is simple enough.
>
> Index: linux-2.6/arch/x86/kernel/early-quirks.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/early-quirks.c
> +++ linux-2.6/arch/x86/kernel/early-quirks.c
> @@ -755,10 +755,16 @@ static int __init check_dev_quirk(int nu
> return 0;
> }
>
> +static unsigned char __initdata scanned[256];
> static void __init early_pci_scan_bus(int bus)
> {
> int slot, func;
>
> + if (scanned[bus])
> + return;
> +
> + scanned[bus] = 1;
> +
> /* Poor man's PCI discovery */
> for (slot = 0; slot < 32; slot++)
> for (func = 0; func < 8; func++) {

Ok, I removed the fix from tip:x86/urgent from the time being - could you guys
please send a full version once a final approach is agreed upon?

Thanks,

Ingo