diff options
author | Jan-Bernd Themann <ossthema@de.ibm.com> | 2007-10-24 05:53:34 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-25 03:31:14 -0400 |
commit | 0173b793ca477aa2ca516ebf0a35e137b678d466 (patch) | |
tree | 4456f3c13a249ed22057d454c7559d3ffeb83a68 /drivers/net/ehea/ehea_main.c | |
parent | a40745f5ef38f4542d120bd67c2c4a07702eb1da (diff) |
ehea: fix port_napi_disable/enable
napi_disable / napi_enable must be applied on all ehea queues.
Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ehea/ehea_main.c')
-rw-r--r-- | drivers/net/ehea/ehea_main.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 2809c99906e0..0a7e78925540 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c | |||
@@ -2329,7 +2329,7 @@ static void port_napi_disable(struct ehea_port *port) | |||
2329 | { | 2329 | { |
2330 | int i; | 2330 | int i; |
2331 | 2331 | ||
2332 | for (i = 0; i < port->num_def_qps; i++) | 2332 | for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) |
2333 | napi_disable(&port->port_res[i].napi); | 2333 | napi_disable(&port->port_res[i].napi); |
2334 | } | 2334 | } |
2335 | 2335 | ||
@@ -2337,7 +2337,7 @@ static void port_napi_enable(struct ehea_port *port) | |||
2337 | { | 2337 | { |
2338 | int i; | 2338 | int i; |
2339 | 2339 | ||
2340 | for (i = 0; i < port->num_def_qps; i++) | 2340 | for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) |
2341 | napi_enable(&port->port_res[i].napi); | 2341 | napi_enable(&port->port_res[i].napi); |
2342 | } | 2342 | } |
2343 | 2343 | ||
@@ -2373,8 +2373,6 @@ static int ehea_down(struct net_device *dev) | |||
2373 | ehea_drop_multicast_list(dev); | 2373 | ehea_drop_multicast_list(dev); |
2374 | ehea_free_interrupts(dev); | 2374 | ehea_free_interrupts(dev); |
2375 | 2375 | ||
2376 | port_napi_disable(port); | ||
2377 | |||
2378 | port->state = EHEA_PORT_DOWN; | 2376 | port->state = EHEA_PORT_DOWN; |
2379 | 2377 | ||
2380 | ret = ehea_clean_all_portres(port); | 2378 | ret = ehea_clean_all_portres(port); |
@@ -2396,6 +2394,7 @@ static int ehea_stop(struct net_device *dev) | |||
2396 | flush_scheduled_work(); | 2394 | flush_scheduled_work(); |
2397 | down(&port->port_lock); | 2395 | down(&port->port_lock); |
2398 | netif_stop_queue(dev); | 2396 | netif_stop_queue(dev); |
2397 | port_napi_disable(port); | ||
2399 | ret = ehea_down(dev); | 2398 | ret = ehea_down(dev); |
2400 | up(&port->port_lock); | 2399 | up(&port->port_lock); |
2401 | return ret; | 2400 | return ret; |