Re: [PATCH 1/3] e1000: fix shared interrupt warning message

2007-02-17 Thread Auke Kok

Jeff Garzik wrote:

Kok, Auke wrote:

Signed-off-by: Jesse Brandeburg [EMAIL PROTECTED]
Signed-off-by: Auke Kok [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 drivers/net/e1000/e1000_main.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)


applied 1-3, though patch #1 had a noticable lack of description.  you 
should describe your change, not just the condition that prompted it. 
operation reordering is something that people shouldn't have to /try/ to 
understand.  Things should just be obvious, and if not, document why.


For the record then:

It is suspected that workarounds in the _up() routine of e1000 can cause the 
receive unit to be enabled before we're all done initializing the adapter data. 
An interrupt arriving before we're all done setting up obviously causes 
problems. To fix, we postpone enabling interrupts completely until the software 
intialization is finished.


Thanks,

Auke
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/3] e1000: fix shared interrupt warning message

2007-02-17 Thread Francois Romieu
Auke Kok [EMAIL PROTECTED] :
[...]
 It is suspected that workarounds in the _up() routine of e1000 can cause 
^
 the receive unit to be enabled before we're all done initializing the 
 adapter data. An interrupt arriving before we're all done setting up 
 obviously causes problems. To fix, we postpone enabling interrupts 
 completely until the software intialization is finished.

Call me dense but is there a chance that the same receive unit that should
not be enabled now emits interrupts between e1000_up() and request_irq() ?

-- 
Ueimor
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/3] e1000: fix shared interrupt warning message

2007-02-17 Thread Auke Kok

Francois Romieu wrote:

Auke Kok [EMAIL PROTECTED] :
[...]
It is suspected that workarounds in the _up() routine of e1000 can cause 

^
the receive unit to be enabled before we're all done initializing the 
adapter data. An interrupt arriving before we're all done setting up 
obviously causes problems. To fix, we postpone enabling interrupts 
completely until the software intialization is finished.


Call me dense but is there a chance that the same receive unit that should
not be enabled now emits interrupts between e1000_up() and request_irq() ?


turning on the receive unit starts the rx logic on the mac, but doesn't make the 
mac generate interrupts as far as I know. The fix was verified and even 
suggested earlier by some people as well.


Cheers,

Auke
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] e1000: fix shared interrupt warning message

2007-02-16 Thread Kok, Auke

Signed-off-by: Jesse Brandeburg [EMAIL PROTECTED]
Signed-off-by: Auke Kok [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 drivers/net/e1000/e1000_main.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 619c892..f293690 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1417,10 +1417,6 @@ e1000_open(struct net_device *netdev)
if ((err = e1000_setup_all_rx_resources(adapter)))
goto err_setup_rx;
 
-   err = e1000_request_irq(adapter);
-   if (err)
-   goto err_req_irq;
-
e1000_power_up_phy(adapter);
 
if ((err = e1000_up(adapter)))
@@ -1431,6 +1427,10 @@ e1000_open(struct net_device *netdev)
e1000_update_mng_vlan(adapter);
}
 
+   err = e1000_request_irq(adapter);
+   if (err)
+   goto err_req_irq;
+
/* If AMT is enabled, let the firmware know that the network
 * interface is now open */
if (adapter-hw.mac_type == e1000_82573 
@@ -1439,10 +1439,10 @@ e1000_open(struct net_device *netdev)
 
return E1000_SUCCESS;
 
+err_req_irq:
+   e1000_down(adapter);
 err_up:
e1000_power_down_phy(adapter);
-   e1000_free_irq(adapter);
-err_req_irq:
e1000_free_all_rx_resources(adapter);
 err_setup_rx:
e1000_free_all_tx_resources(adapter);



---
Auke Kok [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html