From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755196AbbKYCiM (ORCPT ); Tue, 24 Nov 2015 21:38:12 -0500 Received: from mga02.intel.com ([134.134.136.20]:15273 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753721AbbKYCiF (ORCPT ); Tue, 24 Nov 2015 21:38:05 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,341,1444719600"; d="scan'208";a="858839241" From: "Chen, Yu C" To: "ben@decadent.org.uk" CC: "linux-kernel@vger.kernel.org" , "Zheng, Lv" , "stable@vger.kernel.org" , "akpm@linux-foundation.org" , "Wysocki, Rafael J" Subject: Re: [PATCH 3.2 20/52] ACPI: Use correct IRQ when uninstalling ACPI interrupt handler Thread-Topic: [PATCH 3.2 20/52] ACPI: Use correct IRQ when uninstalling ACPI interrupt handler Thread-Index: AQHRJwh5hsjOaCEcN0S6G97N6hmtCJ6rgQqA Date: Wed, 25 Nov 2015 02:37:52 +0000 Message-ID: <1448419213.15712.10.camel@localhost> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.160.87] Content-Type: text/plain; charset="utf-8" Content-ID: <54696440C1CF304DAEF6A018E0AB891C@intel.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id tAP2cgaL025451 Hi, Ben, ok for me. thanks, Yu On Tue, 2015-11-24 at 22:33 +0000, Ben Hutchings wrote: > 3.2.74-rc1 review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Chen Yu > > commit 49e4b84333f338d4f183f28f1f3c1131b9fb2b5a upstream. > > Currently when the system is trying to uninstall the ACPI interrupt > handler, it uses acpi_gbl_FADT.sci_interrupt as the IRQ number. > However, the IRQ number that the ACPI interrupt handled is installed > for comes from acpi_gsi_to_irq() and that is the number that should > be used for the handler removal. > > Fix this problem by using the mapped IRQ returned from acpi_gsi_to_irq() > as appropriate. > > Acked-by: Lv Zheng > Signed-off-by: Chen Yu > Signed-off-by: Rafael J. Wysocki > [bwh: Backported to 3.2: adjust context] > Signed-off-by: Ben Hutchings > --- > drivers/acpi/osl.c | 9 ++++++--- > include/linux/acpi.h | 6 ++++++ > 2 files changed, 12 insertions(+), 3 deletions(-) > > --- a/drivers/acpi/osl.c > +++ b/drivers/acpi/osl.c > @@ -82,6 +82,7 @@ static struct workqueue_struct *kacpid_w > static struct workqueue_struct *kacpi_notify_wq; > struct workqueue_struct *kacpi_hotplug_wq; > EXPORT_SYMBOL(kacpi_hotplug_wq); > +unsigned int acpi_sci_irq = INVALID_ACPI_IRQ; > > struct acpi_res_list { > resource_size_t start; > @@ -566,17 +567,19 @@ acpi_os_install_interrupt_handler(u32 gs > acpi_irq_handler = NULL; > return AE_NOT_ACQUIRED; > } > + acpi_sci_irq = irq; > > return AE_OK; > } > > -acpi_status acpi_os_remove_interrupt_handler(u32 irq, acpi_osd_handler handler) > +acpi_status acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler handler) > { > - if (irq != acpi_gbl_FADT.sci_interrupt) > + if (gsi != acpi_gbl_FADT.sci_interrupt || !acpi_sci_irq_valid()) > return AE_BAD_PARAMETER; > > - free_irq(irq, acpi_irq); > + free_irq(acpi_sci_irq, acpi_irq); > acpi_irq_handler = NULL; > + acpi_sci_irq = INVALID_ACPI_IRQ; > > return AE_OK; > } > --- a/include/linux/acpi.h > +++ b/include/linux/acpi.h > @@ -110,6 +110,12 @@ int acpi_unregister_ioapic(acpi_handle h > void acpi_irq_stats_init(void); > extern u32 acpi_irq_handled; > extern u32 acpi_irq_not_handled; > +extern unsigned int acpi_sci_irq; > +#define INVALID_ACPI_IRQ ((unsigned)-1) > +static inline bool acpi_sci_irq_valid(void) > +{ > + return acpi_sci_irq != INVALID_ACPI_IRQ; > +} > > extern int sbf_port; > extern unsigned long acpi_realmode_flags; > {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:15273 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753721AbbKYCiF (ORCPT ); Tue, 24 Nov 2015 21:38:05 -0500 From: "Chen, Yu C" To: "ben@decadent.org.uk" CC: "linux-kernel@vger.kernel.org" , "Zheng, Lv" , "stable@vger.kernel.org" , "akpm@linux-foundation.org" , "Wysocki, Rafael J" Subject: Re: [PATCH 3.2 20/52] ACPI: Use correct IRQ when uninstalling ACPI interrupt handler Date: Wed, 25 Nov 2015 02:37:52 +0000 Message-ID: <1448419213.15712.10.camel@localhost> References: In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <54696440C1CF304DAEF6A018E0AB891C@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: SGksIEJlbiwgDQpvayBmb3IgbWUuDQoNCnRoYW5rcywNCll1DQpPbiBUdWUsIDIwMTUtMTEtMjQg YXQgMjI6MzMgKzAwMDAsIEJlbiBIdXRjaGluZ3Mgd3JvdGU6DQo+IDMuMi43NC1yYzEgcmV2aWV3 IHBhdGNoLiAgSWYgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucywgcGxlYXNlIGxldCBtZSBrbm93 Lg0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBGcm9tOiBDaGVuIFl1IDx5dS5jLmNo ZW5AaW50ZWwuY29tPg0KPiANCj4gY29tbWl0IDQ5ZTRiODQzMzNmMzM4ZDRmMTgzZjI4ZjFmM2Mx MTMxYjlmYjJiNWEgdXBzdHJlYW0uDQo+IA0KPiBDdXJyZW50bHkgd2hlbiB0aGUgc3lzdGVtIGlz IHRyeWluZyB0byB1bmluc3RhbGwgdGhlIEFDUEkgaW50ZXJydXB0DQo+IGhhbmRsZXIsIGl0IHVz ZXMgYWNwaV9nYmxfRkFEVC5zY2lfaW50ZXJydXB0IGFzIHRoZSBJUlEgbnVtYmVyLg0KPiBIb3dl dmVyLCB0aGUgSVJRIG51bWJlciB0aGF0IHRoZSBBQ1BJIGludGVycnVwdCBoYW5kbGVkIGlzIGlu c3RhbGxlZA0KPiBmb3IgY29tZXMgZnJvbSBhY3BpX2dzaV90b19pcnEoKSBhbmQgdGhhdCBpcyB0 aGUgbnVtYmVyIHRoYXQgc2hvdWxkDQo+IGJlIHVzZWQgZm9yIHRoZSBoYW5kbGVyIHJlbW92YWwu DQo+IA0KPiBGaXggdGhpcyBwcm9ibGVtIGJ5IHVzaW5nIHRoZSBtYXBwZWQgSVJRIHJldHVybmVk IGZyb20gYWNwaV9nc2lfdG9faXJxKCkNCj4gYXMgYXBwcm9wcmlhdGUuDQo+IA0KPiBBY2tlZC1i eTogTHYgWmhlbmcgPGx2LnpoZW5nQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogQ2hlbiBZ dSA8eXUuYy5jaGVuQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogUmFmYWVsIEouIFd5c29j a2kgPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwuY29tPg0KPiBbYndoOiBCYWNrcG9ydGVkIHRvIDMu MjogYWRqdXN0IGNvbnRleHRdDQo+IFNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBk ZWNhZGVudC5vcmcudWs+DQo+IC0tLQ0KPiAgZHJpdmVycy9hY3BpL29zbC5jICAgfCA5ICsrKysr Ky0tLQ0KPiAgaW5jbHVkZS9saW51eC9hY3BpLmggfCA2ICsrKysrKw0KPiAgMiBmaWxlcyBjaGFu Z2VkLCAxMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gLS0tIGEvZHJpdmVy cy9hY3BpL29zbC5jDQo+ICsrKyBiL2RyaXZlcnMvYWNwaS9vc2wuYw0KPiBAQCAtODIsNiArODIs NyBAQCBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmthY3BpZF93DQo+ICBzdGF0aWMg c3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmthY3BpX25vdGlmeV93cTsNCj4gIHN0cnVjdCB3b3Jr cXVldWVfc3RydWN0ICprYWNwaV9ob3RwbHVnX3dxOw0KPiAgRVhQT1JUX1NZTUJPTChrYWNwaV9o b3RwbHVnX3dxKTsNCj4gK3Vuc2lnbmVkIGludCBhY3BpX3NjaV9pcnEgPSBJTlZBTElEX0FDUElf SVJROw0KPiAgDQo+ICBzdHJ1Y3QgYWNwaV9yZXNfbGlzdCB7DQo+ICAJcmVzb3VyY2Vfc2l6ZV90 IHN0YXJ0Ow0KPiBAQCAtNTY2LDE3ICs1NjcsMTkgQEAgYWNwaV9vc19pbnN0YWxsX2ludGVycnVw dF9oYW5kbGVyKHUzMiBncw0KPiAgCQlhY3BpX2lycV9oYW5kbGVyID0gTlVMTDsNCj4gIAkJcmV0 dXJuIEFFX05PVF9BQ1FVSVJFRDsNCj4gIAl9DQo+ICsJYWNwaV9zY2lfaXJxID0gaXJxOw0KPiAg DQo+ICAJcmV0dXJuIEFFX09LOw0KPiAgfQ0KPiAgDQo+IC1hY3BpX3N0YXR1cyBhY3BpX29zX3Jl bW92ZV9pbnRlcnJ1cHRfaGFuZGxlcih1MzIgaXJxLCBhY3BpX29zZF9oYW5kbGVyIGhhbmRsZXIp DQo+ICthY3BpX3N0YXR1cyBhY3BpX29zX3JlbW92ZV9pbnRlcnJ1cHRfaGFuZGxlcih1MzIgZ3Np LCBhY3BpX29zZF9oYW5kbGVyIGhhbmRsZXIpDQo+ICB7DQo+IC0JaWYgKGlycSAhPSBhY3BpX2di bF9GQURULnNjaV9pbnRlcnJ1cHQpDQo+ICsJaWYgKGdzaSAhPSBhY3BpX2dibF9GQURULnNjaV9p bnRlcnJ1cHQgfHwgIWFjcGlfc2NpX2lycV92YWxpZCgpKQ0KPiAgCQlyZXR1cm4gQUVfQkFEX1BB UkFNRVRFUjsNCj4gIA0KPiAtCWZyZWVfaXJxKGlycSwgYWNwaV9pcnEpOw0KPiArCWZyZWVfaXJx KGFjcGlfc2NpX2lycSwgYWNwaV9pcnEpOw0KPiAgCWFjcGlfaXJxX2hhbmRsZXIgPSBOVUxMOw0K PiArCWFjcGlfc2NpX2lycSA9IElOVkFMSURfQUNQSV9JUlE7DQo+ICANCj4gIAlyZXR1cm4gQUVf T0s7DQo+ICB9DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oDQo+ICsrKyBiL2luY2x1ZGUv bGludXgvYWNwaS5oDQo+IEBAIC0xMTAsNiArMTEwLDEyIEBAIGludCBhY3BpX3VucmVnaXN0ZXJf aW9hcGljKGFjcGlfaGFuZGxlIGgNCj4gIHZvaWQgYWNwaV9pcnFfc3RhdHNfaW5pdCh2b2lkKTsN Cj4gIGV4dGVybiB1MzIgYWNwaV9pcnFfaGFuZGxlZDsNCj4gIGV4dGVybiB1MzIgYWNwaV9pcnFf bm90X2hhbmRsZWQ7DQo+ICtleHRlcm4gdW5zaWduZWQgaW50IGFjcGlfc2NpX2lycTsNCj4gKyNk ZWZpbmUgSU5WQUxJRF9BQ1BJX0lSUQkoKHVuc2lnbmVkKS0xKQ0KPiArc3RhdGljIGlubGluZSBi b29sIGFjcGlfc2NpX2lycV92YWxpZCh2b2lkKQ0KPiArew0KPiArCXJldHVybiBhY3BpX3NjaV9p cnEgIT0gSU5WQUxJRF9BQ1BJX0lSUTsNCj4gK30NCj4gIA0KPiAgZXh0ZXJuIGludCBzYmZfcG9y dDsNCj4gIGV4dGVybiB1bnNpZ25lZCBsb25nIGFjcGlfcmVhbG1vZGVfZmxhZ3M7DQo+IA0KDQo=