diff options
Diffstat (limited to 'drivers/net/qlge/qlge_main.c')
-rw-r--r-- | drivers/net/qlge/qlge_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index fa4b24c49f42..e99c2c634c85 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c | |||
@@ -3919,6 +3919,11 @@ static int ql_adapter_up(struct ql_adapter *qdev) | |||
3919 | if ((ql_read32(qdev, STS) & qdev->port_init) && | 3919 | if ((ql_read32(qdev, STS) & qdev->port_init) && |
3920 | (ql_read32(qdev, STS) & qdev->port_link_up)) | 3920 | (ql_read32(qdev, STS) & qdev->port_link_up)) |
3921 | ql_link_on(qdev); | 3921 | ql_link_on(qdev); |
3922 | /* Restore rx mode. */ | ||
3923 | clear_bit(QL_ALLMULTI, &qdev->flags); | ||
3924 | clear_bit(QL_PROMISCUOUS, &qdev->flags); | ||
3925 | qlge_set_multicast_list(qdev->ndev); | ||
3926 | |||
3922 | ql_enable_interrupts(qdev); | 3927 | ql_enable_interrupts(qdev); |
3923 | ql_enable_all_completion_interrupts(qdev); | 3928 | ql_enable_all_completion_interrupts(qdev); |
3924 | netif_tx_start_all_queues(qdev->ndev); | 3929 | netif_tx_start_all_queues(qdev->ndev); |
@@ -4204,7 +4209,7 @@ static struct net_device_stats *qlge_get_stats(struct net_device | |||
4204 | return &ndev->stats; | 4209 | return &ndev->stats; |
4205 | } | 4210 | } |
4206 | 4211 | ||
4207 | static void qlge_set_multicast_list(struct net_device *ndev) | 4212 | void qlge_set_multicast_list(struct net_device *ndev) |
4208 | { | 4213 | { |
4209 | struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev); | 4214 | struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev); |
4210 | struct netdev_hw_addr *ha; | 4215 | struct netdev_hw_addr *ha; |