Re: [PATCH] firewire: Fix ohci free_irq() warning

From: Mark Einon
Date: Tue Jan 29 2013 - 07:44:35 EST


On 28 January 2013 23:01, Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> wrote:
> On Jan 28 Mark Einon wrote:
>> This patch fixes the kernel warning generated when putting an MSI MS-1727
>> GT740 laptop into suspend mode. The call sequence in this case calls
>> free_irq() twice, once in pci_remove() and once then in pci_suspend().
>
> You mean /first/ in pci_suspend() and /then/ in pci_remove() on the
> already suspended devices, right?

Yes, I did. The call sequence is suspend then resume. My bad.

>
> Because the other way around, first pci_remove(), then pci_suspend(),
> surely must not appen. And if it does, the bug is elsewhere but not in
> firewire-ohci.
>
> On that note, is pci_suspend() -> pci_remove() actually a legal state
> transition that must be handled by drivers?

It's happening on the Ubuntu 12.10 distro which performs the suspend
then remove sequence. I assumed that was normal.

>
> Another comment below.
<snip>
>
> firewire-ohci's pci_resume() calls request_irq() a little bit before that,
> in ohci_enable(). Is the sequence pci_probe/request_irq() ->
> pci_suspend/disable_irq() -> pci_resume/request_irq() ->
> pci_resume/enable_irq() legal?

I missed the call to request_irq(). Perhaps the simplest way to handle
the fix would be to use a flag that holds the irq state? I'm open to
suggestions.

Cheers,

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