All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets
@ 2014-03-12 18:44 Neil Horman
  2014-03-12 20:05 ` Neil Horman
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Neil Horman @ 2014-03-12 18:44 UTC (permalink / raw)
  To: linux-kernel
  Cc: Neil Horman, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86

A while back I posted this commit:

commit 03bbcb2e7e292838bb0244f5a7816d194c911d62
Author: Neil Horman <nhorman@tuxdriver.com>
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@tuxdriver.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
---
 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..2237b36 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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 18:44 [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets Neil Horman
@ 2014-03-12 20:05 ` Neil Horman
  2014-03-12 20:07 ` [PATCH v2] " Neil Horman
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Neil Horman @ 2014-03-12 20:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86

On Wed, Mar 12, 2014 at 02:44:33PM -0400, Neil Horman wrote:
> A while back I posted this commit:
> 
> commit 03bbcb2e7e292838bb0244f5a7816d194c911d62
> Author: Neil Horman <nhorman@tuxdriver.com>
> 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@tuxdriver.com>
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: Ingo Molnar <mingo@redhat.com>
> CC: "H. Peter Anvin" <hpa@zytor.com>
> CC: x86@kernel.org
> ---
>  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..2237b36 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
> 
> 
Shoot, self-NAK, that should be <=, new post shortly.
Neil


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 18:44 [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets Neil Horman
  2014-03-12 20:05 ` Neil Horman
@ 2014-03-12 20:07 ` Neil Horman
  2014-03-12 22:18   ` Thomas Gleixner
  2014-03-19 13:00 ` [tip:x86/iommu] x86: Adjust " tip-bot for Neil Horman
  2014-03-31 20:09 ` tip-bot for Neil Horman
  3 siblings, 1 reply; 7+ messages in thread
From: Neil Horman @ 2014-03-12 20:07 UTC (permalink / raw)
  To: linux-kernel
  Cc: Neil Horman, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86

A while back I posted this commit:

commit 03bbcb2e7e292838bb0244f5a7816d194c911d62
Author: Neil Horman <nhorman@tuxdriver.com>
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@tuxdriver.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org

---
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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 20:07 ` [PATCH v2] " Neil Horman
@ 2014-03-12 22:18   ` Thomas Gleixner
  2014-03-13 10:59     ` Neil Horman
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Gleixner @ 2014-03-12 22:18 UTC (permalink / raw)
  To: Neil Horman; +Cc: linux-kernel, Ingo Molnar, H. Peter Anvin, x86

On Wed, 12 Mar 2014, Neil Horman wrote:

> A while back I posted this commit:
> 
> commit 03bbcb2e7e292838bb0244f5a7816d194c911d62
> Author: Neil Horman <nhorman@tuxdriver.com>
> 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@tuxdriver.com>
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: Ingo Molnar <mingo@redhat.com>
> CC: "H. Peter Anvin" <hpa@zytor.com>
> CC: x86@kernel.org

That probably wants to go to stable as well.
 
> ---
> 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
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 22:18   ` Thomas Gleixner
@ 2014-03-13 10:59     ` Neil Horman
  0 siblings, 0 replies; 7+ messages in thread
From: Neil Horman @ 2014-03-13 10:59 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: linux-kernel, Ingo Molnar, H. Peter Anvin, x86, stable

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@tuxdriver.com>
> > 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@tuxdriver.com>
> > CC: Thomas Gleixner <tglx@linutronix.de>
> > CC: Ingo Molnar <mingo@redhat.com>
> > CC: "H. Peter Anvin" <hpa@zytor.com>
> > CC: x86@kernel.org
> 
> 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
> > 
> > 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [tip:x86/iommu] x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 18:44 [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets Neil Horman
  2014-03-12 20:05 ` Neil Horman
  2014-03-12 20:07 ` [PATCH v2] " Neil Horman
@ 2014-03-19 13:00 ` tip-bot for Neil Horman
  2014-03-31 20:09 ` tip-bot for Neil Horman
  3 siblings, 0 replies; 7+ messages in thread
From: tip-bot for Neil Horman @ 2014-03-19 13:00 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, mingo, hpa, mingo, nhorman, tglx

Commit-ID:  cbceb6904f9d99d068711903fc769b84cf036689
Gitweb:     http://git.kernel.org/tip/cbceb6904f9d99d068711903fc769b84cf036689
Author:     Neil Horman <nhorman@tuxdriver.com>
AuthorDate: Wed, 12 Mar 2014 14:44:33 -0400
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 19 Mar 2014 13:57:57 +0100

x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets

Commit 03bbcb2e7e2 (iommu/vt-d: add quirk for broken interrupt
remapping on 55XX chipsets) 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@tuxdriver.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1394649873-14913-1-git-send-email-nhorman@tuxdriver.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 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..2237b36 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) ||

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [tip:x86/iommu] x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets
  2014-03-12 18:44 [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets Neil Horman
                   ` (2 preceding siblings ...)
  2014-03-19 13:00 ` [tip:x86/iommu] x86: Adjust " tip-bot for Neil Horman
@ 2014-03-31 20:09 ` tip-bot for Neil Horman
  3 siblings, 0 replies; 7+ messages in thread
From: tip-bot for Neil Horman @ 2014-03-31 20:09 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, mingo, hpa, mingo, nhorman, tglx

Commit-ID:  6f8a1b335fde143b7407036e2368d3cd6eb55674
Gitweb:     http://git.kernel.org/tip/6f8a1b335fde143b7407036e2368d3cd6eb55674
Author:     Neil Horman <nhorman@tuxdriver.com>
AuthorDate: Wed, 12 Mar 2014 14:44:33 -0400
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Mon, 31 Mar 2014 22:07:01 +0200

x86: Adjust irq remapping quirk for older revisions of 5500/5520 chipsets

Commit 03bbcb2e7e2 (iommu/vt-d: add quirk for broken interrupt
remapping on 55XX chipsets) 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.

[ tglx: Removed the 0x12 comparison of pci id 3405 as this is covered
    	by the <= 0x13 check already ]

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1394649873-14913-1-git-send-email-nhorman@tuxdriver.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/early-quirks.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index bc4a088..6d7d5a1 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -203,18 +203,15 @@ static void __init intel_remapping_check(int num, int slot, int func)
 	revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID);
 
 	/*
- 	 * Revision 13 of all triggering devices id in this quirk have
-	 * a problem draining interrupts when irq remapping is enabled,
-	 * and should be flagged as broken.  Additionally revisions 0x12
-	 * and 0x22 of device id 0x3405 has this problem.
+	 * Revision <= 13 of all triggering devices id in this quirk
+	 * have a problem draining interrupts when irq remapping is
+	 * enabled, and should be flagged as broken. Additionally
+	 * revision 0x22 of device id 0x3405 has this problem.
 	 */
-	if (revision == 0x13)
+	if (revision <= 0x13)
 		set_irq_remapping_broken();
-	else if ((device == 0x3405) &&
-	    ((revision == 0x12) ||
-	     (revision == 0x22)))
+	else if (device == 0x3405 && revision == 0x22)
 		set_irq_remapping_broken();
-
 }
 
 /*

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-03-31 20:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-12 18:44 [PATCH] x86: adjust irq remapping quirk for older revisions of 5500/5520 chipsets Neil Horman
2014-03-12 20:05 ` Neil Horman
2014-03-12 20:07 ` [PATCH v2] " Neil Horman
2014-03-12 22:18   ` Thomas Gleixner
2014-03-13 10:59     ` Neil Horman
2014-03-19 13:00 ` [tip:x86/iommu] x86: Adjust " tip-bot for Neil Horman
2014-03-31 20:09 ` tip-bot for Neil Horman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.