diff options
Diffstat (limited to 'drivers/net/ibm_newemac/core.c')
| -rw-r--r-- | drivers/net/ibm_newemac/core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index 61af02b4c9d8..2e720f26ca83 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c | |||
| @@ -295,7 +295,9 @@ static void emac_rx_disable(struct emac_instance *dev) | |||
| 295 | static inline void emac_netif_stop(struct emac_instance *dev) | 295 | static inline void emac_netif_stop(struct emac_instance *dev) |
| 296 | { | 296 | { |
| 297 | netif_tx_lock_bh(dev->ndev); | 297 | netif_tx_lock_bh(dev->ndev); |
| 298 | netif_addr_lock(dev->ndev); | ||
| 298 | dev->no_mcast = 1; | 299 | dev->no_mcast = 1; |
| 300 | netif_addr_unlock(dev->ndev); | ||
| 299 | netif_tx_unlock_bh(dev->ndev); | 301 | netif_tx_unlock_bh(dev->ndev); |
| 300 | dev->ndev->trans_start = jiffies; /* prevent tx timeout */ | 302 | dev->ndev->trans_start = jiffies; /* prevent tx timeout */ |
| 301 | mal_poll_disable(dev->mal, &dev->commac); | 303 | mal_poll_disable(dev->mal, &dev->commac); |
| @@ -305,9 +307,11 @@ static inline void emac_netif_stop(struct emac_instance *dev) | |||
| 305 | static inline void emac_netif_start(struct emac_instance *dev) | 307 | static inline void emac_netif_start(struct emac_instance *dev) |
| 306 | { | 308 | { |
| 307 | netif_tx_lock_bh(dev->ndev); | 309 | netif_tx_lock_bh(dev->ndev); |
| 310 | netif_addr_lock(dev->ndev); | ||
| 308 | dev->no_mcast = 0; | 311 | dev->no_mcast = 0; |
| 309 | if (dev->mcast_pending && netif_running(dev->ndev)) | 312 | if (dev->mcast_pending && netif_running(dev->ndev)) |
| 310 | __emac_set_multicast_list(dev); | 313 | __emac_set_multicast_list(dev); |
| 314 | netif_addr_unlock(dev->ndev); | ||
| 311 | netif_tx_unlock_bh(dev->ndev); | 315 | netif_tx_unlock_bh(dev->ndev); |
| 312 | 316 | ||
| 313 | netif_wake_queue(dev->ndev); | 317 | netif_wake_queue(dev->ndev); |
