aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRon Mercer <ron.mercer@qlogic.com>2010-07-05 08:19:37 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-05 22:41:19 -0400
commitf2c05004f349635528558da8e253faf78377730e (patch)
tree654b39515f42cdff6f383db50ecd0c8d5b7d1267
parent4265e669ccafec0246f0bc45b7f461ff18da5acd (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>
-rw-r--r--drivers/net/qlge/qlge.h1
-rw-r--r--drivers/net/qlge/qlge_main.c7
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);
2246void ql_check_lb_frame(struct ql_adapter *, struct sk_buff *); 2246void ql_check_lb_frame(struct ql_adapter *, struct sk_buff *);
2247int ql_own_firmware(struct ql_adapter *qdev); 2247int ql_own_firmware(struct ql_adapter *qdev);
2248int ql_clean_lb_rx_ring(struct rx_ring *rx_ring, int budget); 2248int ql_clean_lb_rx_ring(struct rx_ring *rx_ring, int budget);
2249void 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
4207static void qlge_set_multicast_list(struct net_device *ndev) 4212void 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;