summaryrefslogtreecommitdiffstats
path: root/drivers/net/qlge/qlge_main.c
diff options
context:
space:
mode:
authorRon Mercer <ron.mercer@qlogic.com>2009-10-08 09:54:42 +0000
committerDavid S. Miller <davem@davemloft.net>2009-10-08 22:54:52 -0700
commit2cd6dbaaf43ca9ec5607239c23c4e9793b702e1b (patch)
tree76988745133906c87a7f18d63bf222a1caddbbae /drivers/net/qlge/qlge_main.c
parent84087f4d482c5d554e1b26a557d424761213e5dc (diff)
downloadlinux-2cd6dbaaf43ca9ec5607239c23c4e9793b702e1b.tar.gz
linux-2cd6dbaaf43ca9ec5607239c23c4e9793b702e1b.tar.bz2
linux-2cd6dbaaf43ca9ec5607239c23c4e9793b702e1b.zip
qlge: Restore rx mode after internal reset.
Call set_multi API after reset recovery. This was exposed by tripping tx_timeout. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlge/qlge_main.c')
-rw-r--r--drivers/net/qlge/qlge_main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index fe13006b4249..48b45df85ec9 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3751,6 +3751,12 @@ static void ql_asic_reset_work(struct work_struct *work)
status = ql_adapter_up(qdev);
if (status)
goto error;
+
+ /* Restore rx mode. */
+ clear_bit(QL_ALLMULTI, &qdev->flags);
+ clear_bit(QL_PROMISCUOUS, &qdev->flags);
+ qlge_set_multicast_list(qdev->ndev);
+
rtnl_unlock();
return;
error: