lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 26 Feb 2016 09:46:41 +0100
From:	Ivan Vecera <ivecera@...hat.com>
To:	netdev@...r.kernel.org
Cc:	Sathya Perla <sathya.perla@...adcom.com>,
	Sriharsha Basavapatna <sriharsha.basavapatna@...adcom.com>
Subject: [PATCH net] be2net: don't {en,dis}able filters on BE3 when transparent tagging is enabled

The FILTMGMT privilege is necessary on BE3 chip to manipulare filters
like MC, UC list management, VLAN filter, promisc mode... This privilege
is dropped for VFs when transparrent tagging is enabled on them. This
prevents to make interface up for such VF because be_enable_if_filters()
called from be_open() fails thus be_open() also fails.

Cc: Sathya Perla <sathya.perla@...adcom.com>
Cc: Sriharsha Basavapatna <sriharsha.basavapatna@...adcom.com>
Signed-off-by: Ivan Vecera <ivecera@...hat.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index f99de36..2e176f6 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3430,7 +3430,8 @@ static int be_close(struct net_device *netdev)
 	if (!(adapter->flags & BE_FLAGS_SETUP_DONE))
 		return 0;
 
-	be_disable_if_filters(adapter);
+	if (!(BEx_chip(adapter) && be_pvid_tagging_enabled(adapter)))
+		be_disable_if_filters(adapter);
 
 	if (adapter->flags & BE_FLAGS_NAPI_ENABLED) {
 		for_all_evt_queues(adapter, eqo, i) {
@@ -3571,9 +3572,11 @@ static int be_open(struct net_device *netdev)
 	if (status)
 		goto err;
 
-	status = be_enable_if_filters(adapter);
-	if (status)
-		goto err;
+	if (!(BEx_chip(adapter) && be_pvid_tagging_enabled(adapter))) {
+		status = be_enable_if_filters(adapter);
+		if (status)
+			goto err;
+	}
 
 	status = be_irq_register(adapter);
 	if (status)
-- 
2.4.10

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ