2012-06-27 14:14:30

by Winkler, Tomas

[permalink] [raw]
Subject: [char-misc fix for 3.5] mei: pci_resume: set IRQF_ONESHOT for msi request_threaded_irq

when the default irq quick handler is used then IRQF_ONESHOT must be set
otherwise the request fails and following error is displayed:

mei 0000:00:16.0: irq 48 for MSI/MSI-X
genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq 48
mei 0000:00:16.0: request_threaded_irq failed: irq = 48.
dpm_run_callback(): pci_pm_resume+0x0/0x140 returns -22
PM: Device 0000:00:16.0 failed to resume async: error -22

Reported-by: Lekensteyn <[email protected]>
Signed-off-by: Tomas Winkler <[email protected]>
---
drivers/misc/mei/main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index 7de1389..783fcd7 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -1147,7 +1147,7 @@ static int mei_pci_resume(struct device *device)
err = request_threaded_irq(pdev->irq,
NULL,
mei_interrupt_thread_handler,
- 0, mei_driver_name, dev);
+ IRQF_ONESHOT, mei_driver_name, dev);
else
err = request_threaded_irq(pdev->irq,
mei_interrupt_quick_handler,
--
1.7.4.4


2012-06-27 14:58:49

by Peter Wu

[permalink] [raw]
Subject: Re: [char-misc fix for 3.5] mei: pci_resume: set IRQF_ONESHOT for msi request_threaded_irq

On Wednesday 27 June 2012 17:14:20 Tomas Winkler wrote:
> when the default irq quick handler is used then IRQF_ONESHOT must be set
> otherwise the request fails and following error is displayed:
>
> mei 0000:00:16.0: irq 48 for MSI/MSI-X
> genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq 48
> mei 0000:00:16.0: request_threaded_irq failed: irq = 48.
> dpm_run_callback(): pci_pm_resume+0x0/0x140 returns -22
> PM: Device 0000:00:16.0 failed to resume async: error -22
>
> Reported-by: Lekensteyn <[email protected]>
> Signed-off-by: Tomas Winkler <[email protected]>
Tested-by: Peter Wu <[email protected]>

(for the real name policy, if you prefer "Lekensteyn", it's fine too)

> ---
> drivers/misc/mei/main.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
> index 7de1389..783fcd7 100644
> --- a/drivers/misc/mei/main.c
> +++ b/drivers/misc/mei/main.c
> @@ -1147,7 +1147,7 @@ static int mei_pci_resume(struct device *device)
> err = request_threaded_irq(pdev->irq,
> NULL,
> mei_interrupt_thread_handler,
> - 0, mei_driver_name, dev);
> + IRQF_ONESHOT, mei_driver_name, dev);
> else
> err = request_threaded_irq(pdev->irq,
> mei_interrupt_quick_handler,

2012-06-27 15:16:10

by Winkler, Tomas

[permalink] [raw]
Subject: RE: [char-misc fix for 3.5] mei: pci_resume: set IRQF_ONESHOT for msi request_threaded_irq



> -----Original Message-----
> From: Lekensteyn [mailto:[email protected]]
> Sent: Wednesday, June 27, 2012 5:59 PM
> To: Winkler, Tomas
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]
> Subject: Re: [char-misc fix for 3.5] mei: pci_resume: set IRQF_ONESHOT for
> msi request_threaded_irq
>
> On Wednesday 27 June 2012 17:14:20 Tomas Winkler wrote:
> > when the default irq quick handler is used then IRQF_ONESHOT must be
> > set otherwise the request fails and following error is displayed:
> >
> > mei 0000:00:16.0: irq 48 for MSI/MSI-X
> > genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq
> > 48 mei 0000:00:16.0: request_threaded_irq failed: irq = 48.
> > dpm_run_callback(): pci_pm_resume+0x0/0x140 returns -22
> > PM: Device 0000:00:16.0 failed to resume async: error -22
> >
> > Reported-by: Lekensteyn <[email protected]>
> > Signed-off-by: Tomas Winkler <[email protected]>
> Tested-by: Peter Wu <[email protected]>
>
> (for the real name policy, if you prefer "Lekensteyn", it's fine too)

Thanks for reporting and testing
Tomas