All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Revert "x86/xen: Treat SCI interrupt as normal GSI interrupt"
@ 2015-02-15 22:25 ` Ville Syrjälä
  0 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2015-02-15 22:25 UTC (permalink / raw)
  To: linux-acpi
  Cc: linux-kernel, Jiang Liu, Sander Eikelenboom, Rafael J. Wysocki,
	Len Brown, Thomas Gleixner, Ville Syrjälä

This reverts commit b568b8601f05a591a7ff09d8ee1cedb5b2e815fe.

The commit in question causes a nasty regression on HP/Compaq
nc6000 where we fail to register the ACPI interrupt, and thus
lose eg. thermal notifications leading a potentially overheated
machine.

wdiff of /proc/interrupts shows:
9:         [-98-]          {+6+}    XT-PIC  [-acpi-]

Cc: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Sander Eikelenboom <linux@eikelenboom.it>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ville Syrjälä <syrjala@sci.fi>
---
 arch/x86/kernel/acpi/boot.c | 26 ++++++++++++-------------
 arch/x86/pci/xen.c          | 47 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index ae97ed0..5c40e9a 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -611,20 +611,20 @@ void __init acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger)
 
 int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
 {
-	int rc, irq, trigger, polarity;
-
-	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
-	if (rc == 0) {
-		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
-		polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
-		irq = acpi_register_gsi(NULL, gsi, trigger, polarity);
-		if (irq >= 0) {
-			*irqp = irq;
-			return 0;
-		}
-	}
+	int irq;
 
-	return -1;
+	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
+		*irqp = gsi;
+	} else {
+		mutex_lock(&acpi_ioapic_lock);
+		irq = mp_map_gsi_to_irq(gsi,
+					IOAPIC_MAP_ALLOC | IOAPIC_MAP_CHECK);
+		mutex_unlock(&acpi_ioapic_lock);
+		if (irq < 0)
+			return -1;
+		*irqp = irq;
+	}
+	return 0;
 }
 EXPORT_SYMBOL_GPL(acpi_gsi_to_irq);
 
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index d22f4b5..3db4de0 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -476,6 +476,52 @@ int __init pci_xen_hvm_init(void)
 }
 
 #ifdef CONFIG_XEN_DOM0
+static __init void xen_setup_acpi_sci(void)
+{
+	int rc;
+	int trigger, polarity;
+	int gsi = acpi_sci_override_gsi;
+	int irq = -1;
+	int gsi_override = -1;
+
+	if (!gsi)
+		return;
+
+	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
+	if (rc) {
+		printk(KERN_WARNING "xen: acpi_get_override_irq failed for acpi"
+				" sci, rc=%d\n", rc);
+		return;
+	}
+	trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
+	polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
+
+	printk(KERN_INFO "xen: sci override: global_irq=%d trigger=%d "
+			"polarity=%d\n", gsi, trigger, polarity);
+
+	/* Before we bind the GSI to a Linux IRQ, check whether
+	 * we need to override it with bus_irq (IRQ) value. Usually for
+	 * IRQs below IRQ_LEGACY_IRQ this holds IRQ == GSI, as so:
+	 *  ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
+	 * but there are oddballs where the IRQ != GSI:
+	 *  ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level)
+	 * which ends up being: gsi_to_irq[9] == 20
+	 * (which is what acpi_gsi_to_irq ends up calling when starting the
+	 * the ACPI interpreter and keels over since IRQ 9 has not been
+	 * setup as we had setup IRQ 20 for it).
+	 */
+	if (acpi_gsi_to_irq(gsi, &irq) == 0) {
+		/* Use the provided value if it's valid. */
+		if (irq >= 0)
+			gsi_override = irq;
+	}
+
+	gsi = xen_register_gsi(gsi, gsi_override, trigger, polarity);
+	printk(KERN_INFO "xen: acpi sci %d\n", gsi);
+
+	return;
+}
+
 int __init pci_xen_initial_domain(void)
 {
 	int irq;
@@ -486,6 +532,7 @@ int __init pci_xen_initial_domain(void)
 	x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
 	pci_msi_ignore_mask = 1;
 #endif
+	xen_setup_acpi_sci();
 	__acpi_register_gsi = acpi_register_gsi_xen;
 	__acpi_unregister_gsi = NULL;
 	/* Pre-allocate legacy irqs */
-- 
2.0.5

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [PATCH] Revert "x86/xen: Treat SCI interrupt as normal GSI interrupt"
@ 2015-02-15 22:25 ` Ville Syrjälä
  0 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2015-02-15 22:25 UTC (permalink / raw)
  To: linux-acpi
  Cc: linux-kernel, Jiang Liu, Sander Eikelenboom, Rafael J. Wysocki,
	Len Brown, Thomas Gleixner, Ville Syrjälä

This reverts commit b568b8601f05a591a7ff09d8ee1cedb5b2e815fe.

The commit in question causes a nasty regression on HP/Compaq
nc6000 where we fail to register the ACPI interrupt, and thus
lose eg. thermal notifications leading a potentially overheated
machine.

wdiff of /proc/interrupts shows:
9:         [-98-]          {+6+}    XT-PIC  [-acpi-]

Cc: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Sander Eikelenboom <linux@eikelenboom.it>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ville Syrjälä <syrjala@sci.fi>
---
 arch/x86/kernel/acpi/boot.c | 26 ++++++++++++-------------
 arch/x86/pci/xen.c          | 47 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index ae97ed0..5c40e9a 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -611,20 +611,20 @@ void __init acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger)
 
 int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
 {
-	int rc, irq, trigger, polarity;
-
-	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
-	if (rc == 0) {
-		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
-		polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
-		irq = acpi_register_gsi(NULL, gsi, trigger, polarity);
-		if (irq >= 0) {
-			*irqp = irq;
-			return 0;
-		}
-	}
+	int irq;
 
-	return -1;
+	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
+		*irqp = gsi;
+	} else {
+		mutex_lock(&acpi_ioapic_lock);
+		irq = mp_map_gsi_to_irq(gsi,
+					IOAPIC_MAP_ALLOC | IOAPIC_MAP_CHECK);
+		mutex_unlock(&acpi_ioapic_lock);
+		if (irq < 0)
+			return -1;
+		*irqp = irq;
+	}
+	return 0;
 }
 EXPORT_SYMBOL_GPL(acpi_gsi_to_irq);
 
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index d22f4b5..3db4de0 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -476,6 +476,52 @@ int __init pci_xen_hvm_init(void)
 }
 
 #ifdef CONFIG_XEN_DOM0
+static __init void xen_setup_acpi_sci(void)
+{
+	int rc;
+	int trigger, polarity;
+	int gsi = acpi_sci_override_gsi;
+	int irq = -1;
+	int gsi_override = -1;
+
+	if (!gsi)
+		return;
+
+	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
+	if (rc) {
+		printk(KERN_WARNING "xen: acpi_get_override_irq failed for acpi"
+				" sci, rc=%d\n", rc);
+		return;
+	}
+	trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
+	polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
+
+	printk(KERN_INFO "xen: sci override: global_irq=%d trigger=%d "
+			"polarity=%d\n", gsi, trigger, polarity);
+
+	/* Before we bind the GSI to a Linux IRQ, check whether
+	 * we need to override it with bus_irq (IRQ) value. Usually for
+	 * IRQs below IRQ_LEGACY_IRQ this holds IRQ == GSI, as so:
+	 *  ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
+	 * but there are oddballs where the IRQ != GSI:
+	 *  ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level)
+	 * which ends up being: gsi_to_irq[9] == 20
+	 * (which is what acpi_gsi_to_irq ends up calling when starting the
+	 * the ACPI interpreter and keels over since IRQ 9 has not been
+	 * setup as we had setup IRQ 20 for it).
+	 */
+	if (acpi_gsi_to_irq(gsi, &irq) == 0) {
+		/* Use the provided value if it's valid. */
+		if (irq >= 0)
+			gsi_override = irq;
+	}
+
+	gsi = xen_register_gsi(gsi, gsi_override, trigger, polarity);
+	printk(KERN_INFO "xen: acpi sci %d\n", gsi);
+
+	return;
+}
+
 int __init pci_xen_initial_domain(void)
 {
 	int irq;
@@ -486,6 +532,7 @@ int __init pci_xen_initial_domain(void)
 	x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
 	pci_msi_ignore_mask = 1;
 #endif
+	xen_setup_acpi_sci();
 	__acpi_register_gsi = acpi_register_gsi_xen;
 	__acpi_unregister_gsi = NULL;
 	/* Pre-allocate legacy irqs */
-- 
2.0.5


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

* [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
  2015-02-15 22:25 ` Ville Syrjälä
@ 2015-02-16  2:11   ` Jiang Liu
  -1 siblings, 0 replies; 11+ messages in thread
From: Jiang Liu @ 2015-02-16  2:11 UTC (permalink / raw)
  To: Ville Syrjälä,
	Rafael J. Wysocki, Len Brown, Pavel Machek, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86
  Cc: Jiang Liu, Sander Eikelenboom, linux-acpi, linux-pm, linux-kernel

Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
accidently removes support of legacy PIC interrupt when fixing a
regression for Xen, which causes a nasty regression on HP/Compaq
nc6000 where we fail to register the ACPI interrupt, and thus
lose eg. thermal notifications leading a potentially overheated
machine.

So reintroduce support of legacy PIC based ACPI SCI interrupt.

Reported-by: Ville Syrjälä <syrjala@sci.fi>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
---
Hi Ville,
	Could you please help to try this patch instead of revert commit
b568b8601f05?
Thanks!
Gerry
---
 arch/x86/kernel/acpi/boot.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index ae97ed0873c6..3d525c6124f6 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -613,6 +613,11 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
 {
 	int rc, irq, trigger, polarity;
 
+	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
+		*irqp = gsi;
+		return 0;
+	}
+
 	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
 	if (rc == 0) {
 		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
@ 2015-02-16  2:11   ` Jiang Liu
  0 siblings, 0 replies; 11+ messages in thread
From: Jiang Liu @ 2015-02-16  2:11 UTC (permalink / raw)
  To: Ville Syrjälä,
	Rafael J. Wysocki, Len Brown, Pavel Machek, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86
  Cc: Jiang Liu, Sander Eikelenboom, linux-acpi, linux-pm, linux-kernel

Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
accidently removes support of legacy PIC interrupt when fixing a
regression for Xen, which causes a nasty regression on HP/Compaq
nc6000 where we fail to register the ACPI interrupt, and thus
lose eg. thermal notifications leading a potentially overheated
machine.

So reintroduce support of legacy PIC based ACPI SCI interrupt.

Reported-by: Ville Syrjälä <syrjala@sci.fi>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
---
Hi Ville,
	Could you please help to try this patch instead of revert commit
b568b8601f05?
Thanks!
Gerry
---
 arch/x86/kernel/acpi/boot.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index ae97ed0873c6..3d525c6124f6 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -613,6 +613,11 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
 {
 	int rc, irq, trigger, polarity;
 
+	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
+		*irqp = gsi;
+		return 0;
+	}
+
 	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
 	if (rc == 0) {
 		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
-- 
1.7.10.4


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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
  2015-02-16  2:11   ` Jiang Liu
@ 2015-02-16 19:11     ` Ville Syrjälä
  -1 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2015-02-16 19:11 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Rafael J. Wysocki, Len Brown, Pavel Machek, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86, Sander Eikelenboom, linux-acpi,
	linux-pm, linux-kernel

On Mon, Feb 16, 2015 at 10:11:13AM +0800, Jiang Liu wrote:
> Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> accidently removes support of legacy PIC interrupt when fixing a
> regression for Xen, which causes a nasty regression on HP/Compaq
> nc6000 where we fail to register the ACPI interrupt, and thus
> lose eg. thermal notifications leading a potentially overheated
> machine.
> 
> So reintroduce support of legacy PIC based ACPI SCI interrupt.
> 
> Reported-by: Ville Syrjälä <syrjala@sci.fi>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> ---
> Hi Ville,
> 	Could you please help to try this patch instead of revert commit
> b568b8601f05?

Yep, this seems to fix it. Thanks.

Tested-by: Ville Syrjälä <syrjala@sci.fi>
Cc: <stable@vger.kernel.org> # 3.19

That's one regression fixed on this machine, time to go bisect the next one...

> Thanks!
> Gerry
> ---
>  arch/x86/kernel/acpi/boot.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
> index ae97ed0873c6..3d525c6124f6 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -613,6 +613,11 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
>  {
>  	int rc, irq, trigger, polarity;
>  
> +	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
> +		*irqp = gsi;
> +		return 0;
> +	}
> +
>  	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
>  	if (rc == 0) {
>  		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
> -- 
> 1.7.10.4
> 

-- 
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
@ 2015-02-16 19:11     ` Ville Syrjälä
  0 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2015-02-16 19:11 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Rafael J. Wysocki, Len Brown, Pavel Machek, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86, Sander Eikelenboom, linux-acpi,
	linux-pm, linux-kernel

On Mon, Feb 16, 2015 at 10:11:13AM +0800, Jiang Liu wrote:
> Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> accidently removes support of legacy PIC interrupt when fixing a
> regression for Xen, which causes a nasty regression on HP/Compaq
> nc6000 where we fail to register the ACPI interrupt, and thus
> lose eg. thermal notifications leading a potentially overheated
> machine.
> 
> So reintroduce support of legacy PIC based ACPI SCI interrupt.
> 
> Reported-by: Ville Syrjälä <syrjala@sci.fi>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> ---
> Hi Ville,
> 	Could you please help to try this patch instead of revert commit
> b568b8601f05?

Yep, this seems to fix it. Thanks.

Tested-by: Ville Syrjälä <syrjala@sci.fi>
Cc: <stable@vger.kernel.org> # 3.19

That's one regression fixed on this machine, time to go bisect the next one...

> Thanks!
> Gerry
> ---
>  arch/x86/kernel/acpi/boot.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
> index ae97ed0873c6..3d525c6124f6 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -613,6 +613,11 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
>  {
>  	int rc, irq, trigger, polarity;
>  
> +	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
> +		*irqp = gsi;
> +		return 0;
> +	}
> +
>  	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
>  	if (rc == 0) {
>  		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
> -- 
> 1.7.10.4
> 

-- 
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/

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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
  2015-02-16  2:11   ` Jiang Liu
  (?)
  (?)
@ 2015-02-16 19:36   ` Pavel Machek
  2015-02-17 17:55       ` Rafael J. Wysocki
  -1 siblings, 1 reply; 11+ messages in thread
From: Pavel Machek @ 2015-02-16 19:36 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Ville Syrjälä,
	Rafael J. Wysocki, Len Brown, Thomas Gleixner, Ingo Molnar,
	H. Peter Anvin, x86, Sander Eikelenboom, linux-acpi, linux-pm,
	linux-kernel

On Mon 2015-02-16 10:11:13, Jiang Liu wrote:
> Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> accidently removes support of legacy PIC interrupt when fixing a

accidentaly?

> regression for Xen, which causes a nasty regression on HP/Compaq
> nc6000 where we fail to register the ACPI interrupt, and thus
> lose eg. thermal notifications leading a potentially overheated
> machine.
> 
> So reintroduce support of legacy PIC based ACPI SCI interrupt.
> 
> Reported-by: Ville Syrjälä <syrjala@sci.fi>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>

Acked-by: Pavel Machek <pavel@ucw.cz>

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
  2015-02-16 19:36   ` Pavel Machek
@ 2015-02-17 17:55       ` Rafael J. Wysocki
  0 siblings, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2015-02-17 17:55 UTC (permalink / raw)
  To: Pavel Machek, Ingo Molnar, H. Peter Anvin
  Cc: Jiang Liu, Ville Syrjälä,
	Len Brown, Thomas Gleixner, x86, Sander Eikelenboom, linux-acpi,
	linux-pm, linux-kernel

On Monday, February 16, 2015 08:36:37 PM Pavel Machek wrote:
> On Mon 2015-02-16 10:11:13, Jiang Liu wrote:
> > Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> > accidently removes support of legacy PIC interrupt when fixing a
> 
> accidentaly?
> 
> > regression for Xen, which causes a nasty regression on HP/Compaq
> > nc6000 where we fail to register the ACPI interrupt, and thus
> > lose eg. thermal notifications leading a potentially overheated
> > machine.
> > 
> > So reintroduce support of legacy PIC based ACPI SCI interrupt.
> > 
> > Reported-by: Ville Syrjälä <syrjala@sci.fi>
> > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> 
> Acked-by: Pavel Machek <pavel@ucw.cz>

Is anyone taking care of this one or should I take it?

Ingo, Peter?


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
@ 2015-02-17 17:55       ` Rafael J. Wysocki
  0 siblings, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2015-02-17 17:55 UTC (permalink / raw)
  To: Pavel Machek, Ingo Molnar, H. Peter Anvin
  Cc: Jiang Liu, Ville Syrjälä,
	Len Brown, Thomas Gleixner, x86, Sander Eikelenboom, linux-acpi,
	linux-pm, linux-kernel

On Monday, February 16, 2015 08:36:37 PM Pavel Machek wrote:
> On Mon 2015-02-16 10:11:13, Jiang Liu wrote:
> > Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> > accidently removes support of legacy PIC interrupt when fixing a
> 
> accidentaly?
> 
> > regression for Xen, which causes a nasty regression on HP/Compaq
> > nc6000 where we fail to register the ACPI interrupt, and thus
> > lose eg. thermal notifications leading a potentially overheated
> > machine.
> > 
> > So reintroduce support of legacy PIC based ACPI SCI interrupt.
> > 
> > Reported-by: Ville Syrjälä <syrjala@sci.fi>
> > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> 
> Acked-by: Pavel Machek <pavel@ucw.cz>

Is anyone taking care of this one or should I take it?

Ingo, Peter?


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [PATCH] x86, irq: Fix regression caused by commit b568b8601f05
  2015-02-17 17:55       ` Rafael J. Wysocki
  (?)
@ 2015-02-17 18:50       ` Peter Zijlstra
  -1 siblings, 0 replies; 11+ messages in thread
From: Peter Zijlstra @ 2015-02-17 18:50 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Pavel Machek, Ingo Molnar, H. Peter Anvin, Jiang Liu,
	Ville Syrjälä,
	Len Brown, Thomas Gleixner, x86, Sander Eikelenboom, linux-acpi,
	linux-pm, linux-kernel

On Tue, Feb 17, 2015 at 06:55:14PM +0100, Rafael J. Wysocki wrote:
> On Monday, February 16, 2015 08:36:37 PM Pavel Machek wrote:
> > On Mon 2015-02-16 10:11:13, Jiang Liu wrote:
> > > Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
> > > accidently removes support of legacy PIC interrupt when fixing a
> > 
> > accidentaly?
> > 
> > > regression for Xen, which causes a nasty regression on HP/Compaq
> > > nc6000 where we fail to register the ACPI interrupt, and thus
> > > lose eg. thermal notifications leading a potentially overheated
> > > machine.
> > > 
> > > So reintroduce support of legacy PIC based ACPI SCI interrupt.
> > > 
> > > Reported-by: Ville Syrjälä <syrjala@sci.fi>
> > > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> > 
> > Acked-by: Pavel Machek <pavel@ucw.cz>
> 
> Is anyone taking care of this one or should I take it?
> 
> Ingo, Peter?

Gots it, thanks!

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

* [tip:irq/urgent] x86/irq: Fix regression caused by commit b568b8601f05
  2015-02-16  2:11   ` Jiang Liu
                     ` (2 preceding siblings ...)
  (?)
@ 2015-02-18 17:08   ` tip-bot for Jiang Liu
  -1 siblings, 0 replies; 11+ messages in thread
From: tip-bot for Jiang Liu @ 2015-02-18 17:08 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: syrjala, tglx, linux-kernel, pavel, hpa, mingo, torvalds,
	jiang.liu, peterz, len.brown, rjw, linux

Commit-ID:  1ea76fbadd667b19c4fa4466f3a3b55a505e83d9
Gitweb:     http://git.kernel.org/tip/1ea76fbadd667b19c4fa4466f3a3b55a505e83d9
Author:     Jiang Liu <jiang.liu@linux.intel.com>
AuthorDate: Mon, 16 Feb 2015 10:11:13 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 18 Feb 2015 15:01:41 +0100

x86/irq: Fix regression caused by commit b568b8601f05

Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
accidently removes support of legacy PIC interrupt when fixing a
regression for Xen, which causes a nasty regression on HP/Compaq
nc6000 where we fail to register the ACPI interrupt, and thus
lose eg. thermal notifications leading a potentially overheated
machine.

So reintroduce support of legacy PIC based ACPI SCI interrupt.

Reported-by: Ville Syrjälä <syrjala@sci.fi>
Tested-by: Ville Syrjälä <syrjala@sci.fi>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: <stable@vger.kernel.org> # 3.19+
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Sander Eikelenboom <linux@eikelenboom.it>
Cc: linux-pm@vger.kernel.org
Link: http://lkml.kernel.org/r/1424052673-22974-1-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/acpi/boot.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index a18fff3..8b59163 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -613,6 +613,11 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
 {
 	int rc, irq, trigger, polarity;
 
+	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
+		*irqp = gsi;
+		return 0;
+	}
+
 	rc = acpi_get_override_irq(gsi, &trigger, &polarity);
 	if (rc == 0) {
 		trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;

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

end of thread, other threads:[~2015-02-18 17:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-15 22:25 [PATCH] Revert "x86/xen: Treat SCI interrupt as normal GSI interrupt" Ville Syrjälä
2015-02-15 22:25 ` Ville Syrjälä
2015-02-16  2:11 ` [PATCH] x86, irq: Fix regression caused by commit b568b8601f05 Jiang Liu
2015-02-16  2:11   ` Jiang Liu
2015-02-16 19:11   ` Ville Syrjälä
2015-02-16 19:11     ` Ville Syrjälä
2015-02-16 19:36   ` Pavel Machek
2015-02-17 17:55     ` Rafael J. Wysocki
2015-02-17 17:55       ` Rafael J. Wysocki
2015-02-17 18:50       ` Peter Zijlstra
2015-02-18 17:08   ` [tip:irq/urgent] x86/irq: " tip-bot for Jiang Liu

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.