Re: [PATCH v2] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets

From: Neil Horman
Date: Thu Mar 13 2014 - 07:00:00 EST


On Wed, Mar 12, 2014 at 11:18:29PM +0100, Thomas Gleixner wrote:
> On Wed, 12 Mar 2014, Neil Horman wrote:
>
> > A while back I posted this commit:
> >
> > commit 03bbcb2e7e292838bb0244f5a7816d194c911d62
> > Author: Neil Horman <nhorman@xxxxxxxxxxxxx>
> > Date: Tue Apr 16 16:38:32 2013 -0400
> >
> > iommu/vt-d: add quirk for broken interrupt remapping on 55XX chipsets
> >
> > Which properly disables irq remapping on the 5500/5520 chipsets that don't
> > correctly perform that feature. However, when I wrote it, I followed the errata
> > sheet linked in that commit too closely, and explicitly tied the activation of
> > the quirk to revision 0x13 of the chip, under the assumption that earlier
> > revisions were not in the field. Recently a system was reported to be suffering
> > from this remap bug and the quirk hadn't triggered, because the revision id
> > register read at a lower value that 0x13, so the quirk test failed improperly.
> > Given this, it seems only prudent to adjust this quirk so that any revision less
> > than 0x13 has the quirk asserted.
> >
> > Signed-off-by: Neil Horman <nhorman@xxxxxxxxxxxxx>
> > CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > CC: Ingo Molnar <mingo@xxxxxxxxxx>
> > CC: "H. Peter Anvin" <hpa@xxxxxxxxx>
> > CC: x86@xxxxxxxxxx
>
> That probably wants to go to stable as well.
>
Thanks, your right, cc-ing stable
Neil

> > ---
> > Change notes:
> >
> > v2) fix stupid < / <= error
> > ---
> > arch/x86/kernel/early-quirks.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
> > index bc4a088..e69907a 100644
> > --- a/arch/x86/kernel/early-quirks.c
> > +++ b/arch/x86/kernel/early-quirks.c
> > @@ -208,7 +208,7 @@ static void __init intel_remapping_check(int num, int slot, int func)
> > * and should be flagged as broken. Additionally revisions 0x12
> > * and 0x22 of device id 0x3405 has this problem.
> > */
> > - if (revision == 0x13)
> > + if (revision <= 0x13)
> > set_irq_remapping_broken();
> > else if ((device == 0x3405) &&
> > ((revision == 0x12) ||
> > --
> > 1.8.3.1
> >
> >
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/