> + htcfg = read_pci_config(num, slot, func, 0x68); > + if (htcfg & (1 << 18)) { > + printk(KERN_INFO "Detected use of extended apic ids on hypertransport bus\n"); > + if ((htcfg & (1 << 17)) == 0) { > + printk(KERN_INFO "Enabling hypertransport extended apic interrupt broadcast\n"); > + printk(KERN_INFO "Note this is a bios bug, please contact your hw vendor\n"); I'm not convinced the message is correct. e.g. on a system with only a dual core not enabling that is fine, but the extended IDs might be still set. > #endif /* CONFIG_ACPI */ > > -static void __init nvidia_bugs(void) > +static void __init nvidia_bugs(int num, int slot, int func) > { > + static int fix_applied = 0; > + > + if (fix_applied++) > + return; This looks like the wrong place to do this. Better add a flag or something in the structure. Dito others. Also while not a problem here in general it's bad style to add potential wrapping bugs like this. Never use ++ for flags. -Andi