On Fri, 8 Dec 2006 10:00:04 -0800 "Siddha, Suresh B" <[EMAIL PROTECTED]> wrote:
> On Fri, Dec 08, 2006 at 06:10:29PM +0100, Andi Kleen wrote: > > Yes please check the mainline git tree. > > Ok. I think I am the culprit :( > > Andi, Attached patch should fix the panic issue that Andrew encountered. > Andrew, please confirm. > > Andi, if you are applying Ingo's genapic changes and reverting this quirk > changes in git, then there is no need to apply the appended patch. > > Personally, I would like to go with Ingo's changes as it cleans up quite > a bit of code. > > thanks, > suresh > -- > > [patch] i386: Fix the verify_quirk_intel_irqbalance() > > Fix the verify_quirk_intel_irqbalance(). genapic checks should really > happen only on affected versions of the E7520/E7320/E7525 based platforms. > > Signed-off-by: Suresh Siddha <[EMAIL PROTECTED]> > > diff --git a/arch/i386/kernel/quirks.c b/arch/i386/kernel/quirks.c > index a01320a..34874c3 100644 > --- a/arch/i386/kernel/quirks.c > +++ b/arch/i386/kernel/quirks.c > @@ -10,13 +10,38 @@ #include <asm/cpu.h> > #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) > static void __devinit verify_quirk_intel_irqbalance(struct pci_dev *dev) > { > + u8 config, rev; > + u32 word; > + > + /* BIOS may enable hardware IRQ balancing for > + * E7520/E7320/E7525(revision ID 0x9 and below) > + * based platforms. > + * For those platforms, make sure that the genapic is set to 'flat' > + */ > + pci_read_config_byte(dev, PCI_CLASS_REVISION, &rev); > + if (rev > 0x9) > + return; > + > + /* enable access to config space*/ > + pci_read_config_byte(dev, 0xf4, &config); > + pci_write_config_byte(dev, 0xf4, config|0x2); > + > + /* read xTPR register */ > + raw_pci_ops->read(0, 0, 0x40, 0x4c, 2, &word); > + > + if (!(word & (1 << 13))) { > #ifdef CONFIG_X86_64 > - if (genapic != &apic_flat) > - panic("APIC mode must be flat on this system\n"); > + if (genapic != &apic_flat) > + panic("APIC mode must be flat on this system\n"); > #elif defined(CONFIG_X86_GENERICARCH) > - if (genapic != &apic_default) > - panic("APIC mode must be default(flat) on this system. Use > apic=default\n"); > + if (genapic != &apic_default) > + panic("APIC mode must be default(flat) on this system. > Use apic=default\n"); > #endif > + } > + > + /* put back the original value for config space*/ > + if (!(config & 0x2)) > + pci_write_config_byte(dev, 0xf4, config); > } > > void __init quirk_intel_irqbalance(void) Yes, that boots. Andi: you want me to send it to Mr T? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/