netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
       [not found] ` <4921E574.3090602@tuffmail.co.uk>
@ 2008-11-18  0:13   ` Jay Cliburn
  2008-11-18 14:30     ` Alan Jenkins
  0 siblings, 1 reply; 8+ messages in thread
From: Jay Cliburn @ 2008-11-18  0:13 UTC (permalink / raw)
  To: Alan Jenkins; +Cc: csnook, atl1-devel, linux-kernel, netdev

[adding netdev to cc list]

On Mon, 17 Nov 2008 21:43:16 +0000
Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote:


> Don't listen to me.  The problem went away because when I was testing
> my patch, I plugged the ethernet in and actually used it.  My patch
> doesn't seem to fix anything.
> 
> So I now have the steps to reproduce this warning: remove the ethernet
> cable and suspend.
> 
> Also, I was speaking rubbish because the warning isn't on the resume
> path.  It seems to be when network-manager re-opens the device on
> resume.
> 
> I'll have another look for possible culprits.  Hints appreciated :).

Does this help?

diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index f5bdc92..5b292f0 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -1690,10 +1690,6 @@ static int atl2_resume(struct pci_dev *pdev)
 
 	ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
 
-	err = atl2_request_irq(adapter);
-	if (netif_running(netdev) && err)
-		return err;
-
	atl2_reset_hw(&adapter->hw);
 
	if (netif_running(netdev))

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

* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-18  0:13   ` [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only) Jay Cliburn
@ 2008-11-18 14:30     ` Alan Jenkins
  2008-11-18 17:36       ` Alan Jenkins
  0 siblings, 1 reply; 8+ messages in thread
From: Alan Jenkins @ 2008-11-18 14:30 UTC (permalink / raw)
  To: Jay Cliburn; +Cc: csnook, atl1-devel, linux-kernel, netdev

Jay Cliburn wrote:
> [adding netdev to cc list]
>
> On Mon, 17 Nov 2008 21:43:16 +0000
> Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote:
>
>
>   
>> Don't listen to me.  The problem went away because when I was testing
>> my patch, I plugged the ethernet in and actually used it.  My patch
>> doesn't seem to fix anything.
>>
>> So I now have the steps to reproduce this warning: remove the ethernet
>> cable and suspend.
>>
>> Also, I was speaking rubbish because the warning isn't on the resume
>> path.  It seems to be when network-manager re-opens the device on
>> resume.
>>
>> I'll have another look for possible culprits.  Hints appreciated :).
>>     
>
> Does this help?
>   

Ah! Yes, that fixes it, thanks.

> diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
> index f5bdc92..5b292f0 100644
> --- a/drivers/net/atlx/atl2.c
> +++ b/drivers/net/atlx/atl2.c
> @@ -1690,10 +1690,6 @@ static int atl2_resume(struct pci_dev *pdev)
>  
>  	ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
>  
> -	err = atl2_request_irq(adapter);
> -	if (netif_running(netdev) && err)
> -		return err;
> -
> 	atl2_reset_hw(&adapter->hw);
>  
> 	if (netif_running(netdev))
>   


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

* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-18 14:30     ` Alan Jenkins
@ 2008-11-18 17:36       ` Alan Jenkins
  2008-11-18 19:51         ` Alan Jenkins
  0 siblings, 1 reply; 8+ messages in thread
From: Alan Jenkins @ 2008-11-18 17:36 UTC (permalink / raw)
  To: Jay Cliburn; +Cc: csnook, atl1-devel, linux-kernel, netdev

Alan Jenkins wrote:
> Jay Cliburn wrote:
>   
>> [adding netdev to cc list]
>>
>> On Mon, 17 Nov 2008 21:43:16 +0000
>> Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote:
>>
>>
>>   
>>     
>>> Don't listen to me.  The problem went away because when I was testing
>>> my patch, I plugged the ethernet in and actually used it.  My patch
>>> doesn't seem to fix anything.
>>>
>>> So I now have the steps to reproduce this warning: remove the ethernet
>>> cable and suspend.
>>>
>>> Also, I was speaking rubbish because the warning isn't on the resume
>>> path.  It seems to be when network-manager re-opens the device on
>>> resume.
>>>
>>> I'll have another look for possible culprits.  Hints appreciated :).
>>>     
>>>       
>> Does this help?
>>   
>>     
>
> Ah! Yes, that fixes it, thanks.
>   

Just noticed another problem. If I suspend with the cable plugged in, I 
get a warning message about freeing the IRQ:

[ 331.023417] atl2 0000:03:00.0: restoring config space at offset 0x1 
(was 0x100006, writing 0x100406)
[ 331.023453] atl2 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 331.023462] atl2 0000:03:00.0: setting latency timer to 64
[ 331.043449] ath5k_pci 0000:01:00.0: restoring config space at offset 
0xf (was 0x100, writing 0x10a)
...
[ 332.681591] Restarting tasks ... done.
[ 333.617398] hpet1: lost 2 rtc interrupts
[ 334.016700] Trying to free already-free IRQ 17
[ 334.057257] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 334.082570] atl2 0000:03:00.0: irq 44 for MSI/MSI-X


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

* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-18 17:36       ` Alan Jenkins
@ 2008-11-18 19:51         ` Alan Jenkins
  2008-11-20  0:34           ` Jay Cliburn
  0 siblings, 1 reply; 8+ messages in thread
From: Alan Jenkins @ 2008-11-18 19:51 UTC (permalink / raw)
  To: Jay Cliburn; +Cc: csnook, atl1-devel, linux-kernel, netdev

Alan Jenkins wrote:
> Alan Jenkins wrote:
>> Jay Cliburn wrote:
>>> [adding netdev to cc list]
>>>
>>> On Mon, 17 Nov 2008 21:43:16 +0000
>>> Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote:
>>>
>>>
>>>> Don't listen to me. The problem went away because when I was testing
>>>> my patch, I plugged the ethernet in and actually used it. My patch
>>>> doesn't seem to fix anything.
>>>>
>>>> So I now have the steps to reproduce this warning: remove the ethernet
>>>> cable and suspend.
>>>>
>>>> Also, I was speaking rubbish because the warning isn't on the resume
>>>> path. It seems to be when network-manager re-opens the device on
>>>> resume.
>>>>
>>>> I'll have another look for possible culprits. Hints appreciated :).
>>> Does this help?
>>
>> Ah! Yes, that fixes it, thanks.
>
> Just noticed another problem. If I suspend with the cable plugged in,
> I get a warning message about freeing the IRQ
which was caused by your patch.  It works better (for both cable plugged and unplugged cases) if I do this instead:


diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index f5bdc92..8571e8c 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -1690,9 +1690,11 @@ static int atl2_resume(struct pci_dev *pdev)
 
 	ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
 
-	err = atl2_request_irq(adapter);
-	if (netif_running(netdev) && err)
-		return err;
+	if (netif_running(netdev)) {
+		err = atl2_request_irq(adapter);
+		if (err)
+			return err;
+	}
 
 	atl2_reset_hw(&adapter->hw);
 



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

* Re: atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-18 19:51         ` Alan Jenkins
@ 2008-11-20  0:34           ` Jay Cliburn
  2008-11-20  9:44             ` David Miller
  0 siblings, 1 reply; 8+ messages in thread
From: Jay Cliburn @ 2008-11-20  0:34 UTC (permalink / raw)
  To: Alan Jenkins; +Cc: atl1-devel, linux-kernel, netdev, Chris Snook

Can someone tell before I submit this patch if the description is sane?

atl2: don't request irq on resume if netif running

If the device is suspended with the cable disconnected, then
resumed with the cable connected, dev->open is called before
resume. During resume, we request an IRQ, but the IRQ was
already assigned during dev->open, resulting in the warning
shown below.

Don't request an IRQ if the device is running.

Call Trace:
 [<c011b89a>] warn_on_slowpath+0x40/0x59
 [<c023df15>] raw_pci_read+0x4d/0x55
 [<c023dff3>] pci_read+0x1c/0x21
 [<c01bcd81>] __pci_find_next_cap_ttl+0x44/0x70
 [<c01bce86>] __pci_find_next_cap+0x1a/0x1f
 [<c01bcef9>] pci_find_capability+0x28/0x2c
 [<c01c4144>] pci_msi_check_device+0x53/0x62
 [<c01c49c2>] pci_enable_msi+0x3a/0x1cd
 [<e019f17b>] atl2_write_phy_reg+0x40/0x5f [atl2]
 [<c01061b1>] dma_generic_alloc_coherent+0x0/0xd7
 [<e019f107>] atl2_request_irq+0x15/0x49 [atl2]
 [<e01a1481>] atl2_open+0x20b/0x297 [atl2]
 [<c024a35c>] dev_open+0x62/0x91
 [<c0248b9a>] dev_change_flags+0x93/0x141
 [<c024f308>] do_setlink+0x238/0x2d5
 [<c02501b2>] rtnl_setlink+0xa9/0xbf
 [<c0297f0c>] mutex_lock+0xb/0x19
 [<c024ffa7>] rtnl_dump_ifinfo+0x0/0x69
 [<c0250109>] rtnl_setlink+0x0/0xbf
 [<c024fe42>] rtnetlink_rcv_msg+0x185/0x19f
 [<c0240fd1>] sock_rmalloc+0x23/0x57
 [<c024fcbd>] rtnetlink_rcv_msg+0x0/0x19f
 [<c0259457>] netlink_rcv_skb+0x2d/0x71
 [<c024fcb7>] rtnetlink_rcv+0x14/0x1a
 [<c025929e>] netlink_unicast+0x184/0x1e4
 [<c025992a>] netlink_sendmsg+0x233/0x240
 [<c023f405>] sock_sendmsg+0xb7/0xd0
 [<c0129131>] autoremove_wake_function+0x0/0x2b
 [<c0129131>] autoremove_wake_function+0x0/0x2b
 [<c0147796>] mempool_alloc+0x2d/0x9e
 [<c020c923>] scsi_pool_alloc_command+0x35/0x4f
 [<c0297f0c>] mutex_lock+0xb/0x19
 [<c028e867>] unix_stream_recvmsg+0x357/0x3e2
 [<c01b81c9>] copy_from_user+0x23/0x4f
 [<c02452ea>] verify_iovec+0x3e/0x6c
 [<c023f5ab>] sys_sendmsg+0x18d/0x1f0
 [<c023ffa8>] sys_recvmsg+0x146/0x1c8
 [<c0240016>] sys_recvmsg+0x1b4/0x1c8
 [<c0118f48>] __wake_up+0xf/0x15
 [<c02586cd>] netlink_table_ungrab+0x17/0x19
 [<c01b83ba>] copy_to_user+0x25/0x3b
 [<c023fe4a>] move_addr_to_user+0x50/0x68
 [<c0240266>] sys_getsockname+0x6f/0x9a
 [<c0240280>] sys_getsockname+0x89/0x9a
 [<c015046a>] do_wp_page+0x3ae/0x41a
 [<c0151525>] handle_mm_fault+0x4c5/0x540
 [<c02405d0>] sys_socketcall+0x176/0x1b0
 [<c010376d>] sysenter_do_call+0x12/0x21

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Jay Cliburn <jcliburn@gmail.com>
---
 drivers/net/atlx/atl2.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index f5bdc92..8571e8c 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -1690,9 +1690,11 @@ static int atl2_resume(struct pci_dev *pdev)
 
 	ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
 
-	err = atl2_request_irq(adapter);
-	if (netif_running(netdev) && err)
-		return err;
+	if (netif_running(netdev)) {
+		err = atl2_request_irq(adapter);
+		if (err)
+			return err;
+	}
 
 	atl2_reset_hw(&adapter->hw);
 
-- 
1.5.6.5

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

* Re: atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-20  0:34           ` Jay Cliburn
@ 2008-11-20  9:44             ` David Miller
  2008-11-20 11:33               ` [atl1-devel] " Jay Cliburn
  0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2008-11-20  9:44 UTC (permalink / raw)
  To: jcliburn; +Cc: alan-jenkins, atl1-devel, linux-kernel, netdev, csnook

From: Jay Cliburn <jcliburn@gmail.com>
Date: Wed, 19 Nov 2008 18:34:43 -0600

> Can someone tell before I submit this patch if the description is sane?
> 
> atl2: don't request irq on resume if netif running

It looks good, mind if I just apply this as-is?

Thanks.

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

* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-20  9:44             ` David Miller
@ 2008-11-20 11:33               ` Jay Cliburn
  2008-11-20 12:18                 ` David Miller
  0 siblings, 1 reply; 8+ messages in thread
From: Jay Cliburn @ 2008-11-20 11:33 UTC (permalink / raw)
  To: David Miller; +Cc: atl1-devel, alan-jenkins, linux-kernel, netdev

On Thu, 20 Nov 2008 01:44:20 -0800 (PST)
David Miller <davem@davemloft.net> wrote:

> From: Jay Cliburn <jcliburn@gmail.com>
> Date: Wed, 19 Nov 2008 18:34:43 -0600
> 
> > Can someone tell before I submit this patch if the description is
> > sane?
> > 
> > atl2: don't request irq on resume if netif running
> 
> It looks good, mind if I just apply this as-is?

Yes please.  Go right ahead.  Thanks.

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

* Re: [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only)
  2008-11-20 11:33               ` [atl1-devel] " Jay Cliburn
@ 2008-11-20 12:18                 ` David Miller
  0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2008-11-20 12:18 UTC (permalink / raw)
  To: jcliburn; +Cc: atl1-devel, alan-jenkins, linux-kernel, netdev

From: Jay Cliburn <jcliburn@gmail.com>
Date: Thu, 20 Nov 2008 05:33:29 -0600

> On Thu, 20 Nov 2008 01:44:20 -0800 (PST)
> David Miller <davem@davemloft.net> wrote:
> 
> > From: Jay Cliburn <jcliburn@gmail.com>
> > Date: Wed, 19 Nov 2008 18:34:43 -0600
> > 
> > > Can someone tell before I submit this patch if the description is
> > > sane?
> > > 
> > > atl2: don't request irq on resume if netif running
> > 
> > It looks good, mind if I just apply this as-is?
> 
> Yes please.  Go right ahead.  Thanks.

Done.

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

end of thread, other threads:[~2008-11-20 12:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <49201401.1060600@tuffmail.co.uk>
     [not found] ` <4921E574.3090602@tuffmail.co.uk>
2008-11-18  0:13   ` [atl1-devel] atl2: don't mess up irq on suspend/resume (probably msi only) Jay Cliburn
2008-11-18 14:30     ` Alan Jenkins
2008-11-18 17:36       ` Alan Jenkins
2008-11-18 19:51         ` Alan Jenkins
2008-11-20  0:34           ` Jay Cliburn
2008-11-20  9:44             ` David Miller
2008-11-20 11:33               ` [atl1-devel] " Jay Cliburn
2008-11-20 12:18                 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).