lkml.org 
[lkml]   [2013]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] firewire: Fix ohci free_irq() warning
On 28 January 2013 23:01, Stefan Richter <stefanr@s5r6.in-berlin.de> 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


\
 
 \ /
  Last update: 2013-01-29 15:21    [W:0.240 / U:0.380 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site