Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > ea32411352494358b8d75a78402a4713 > files > 3107

kernel-2.6.18-238.19.1.el5.centos.plus.src.rpm

From: Chad Dupuis <cdupuis@redhat.com>
Date: Fri, 6 Aug 2010 14:22:51 -0400
Subject: [net] qlge: restore promiscuous setting in ql_adapter_up
Message-id: <20100806141938.2774.85688.sendpatchset@localhost.localdomain>
Patchwork-id: 27448
O-Subject: [RHEL 5.6 PATCH 6/10] qlge: Restoring the promiscuous setting in
	ql_adapter_up.
Bugzilla: 567402

Bugzilla
========

567402

Upstream Status
===============

net-2.6 commit id d90c63417232832eafb3cbaf5442df66f29a27c1

Description
===========

>From bd5ca96cb9d656309e15fbb25ed61b35063efb1a Mon Sep 17 00:00:00 2001
From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Date: Wed, 4 Aug 2010 16:44:50 -0700
Subject: [PATCH 6/8] qlge: Restoring the promiscuous setting in ql_adapter_up.

Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>

diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h
index 15c1ba9..dcc7562 100644
--- a/drivers/net/qlge/qlge.h
+++ b/drivers/net/qlge/qlge.h
@@ -2133,6 +2133,7 @@ void ql_check_receive_frame(struct sk_buff *skb);
 int ql_own_firmware(struct ql_adapter *qdev);
 int ql_wait_fifo_empty(struct ql_adapter *);
 int ql_mb_set_mgmnt_traffic_ctl(struct ql_adapter *, u32);
+void qlge_set_multicast_list(struct net_device *ndev);
 
 #if 1
 #define QL_ALL_DUMP
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 6da69f0..89623c8 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3676,6 +3676,11 @@ static int ql_adapter_up(struct ql_adapter *qdev)
 	/* trigger link work function*/
 	queue_delayed_work(qdev->workqueue, &qdev->link_work.work,
 					msecs_to_jiffies(2000));
+	/* Restore rx mode. */
+	clear_bit(QL_ALLMULTI, &qdev->flags);
+	clear_bit(QL_PROMISCUOUS, &qdev->flags);
+	qlge_set_multicast_list(qdev->ndev);
+
 	ql_enable_interrupts(qdev);
 	return 0;
 err_init:
@@ -3958,7 +3963,7 @@ static struct net_device_stats *qlge_get_stats(struct net_device
 	return &qdev->stats;
 }
 
-static void qlge_set_multicast_list(struct net_device *ndev)
+void qlge_set_multicast_list(struct net_device *ndev)
 {
 	struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
 	struct dev_mc_list *mc_ptr;