diff options
author | Ron Mercer <ron.mercer@qlogic.com> | 2010-07-05 08:19:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-05 22:41:19 -0400 |
commit | f2c05004f349635528558da8e253faf78377730e (patch) | |
tree | 654b39515f42cdff6f383db50ecd0c8d5b7d1267 /drivers | |
parent | 4265e669ccafec0246f0bc45b7f461ff18da5acd (diff) |
qlge: Restore promiscuous setting after reset.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/qlge/qlge.h | 1 | ||||
-rw-r--r-- | drivers/net/qlge/qlge_main.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index bfb8b327f2fd..01b0634a0b54 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h | |||
@@ -2246,6 +2246,7 @@ netdev_tx_t ql_lb_send(struct sk_buff *skb, struct net_device *ndev); | |||
2246 | void ql_check_lb_frame(struct ql_adapter *, struct sk_buff *); | 2246 | void ql_check_lb_frame(struct ql_adapter *, struct sk_buff *); |
2247 | int ql_own_firmware(struct ql_adapter *qdev); | 2247 | int ql_own_firmware(struct ql_adapter *qdev); |
2248 | int ql_clean_lb_rx_ring(struct rx_ring *rx_ring, int budget); | 2248 | int ql_clean_lb_rx_ring(struct rx_ring *rx_ring, int budget); |
2249 | void qlge_set_multicast_list(struct net_device *ndev); | ||
2249 | 2250 | ||
2250 | #if 1 | 2251 | #if 1 |
2251 | #define QL_ALL_DUMP | 2252 | #define QL_ALL_DUMP |
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; |