[tip:core/locking] qlcnic: eswitch config fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit-ID:  e9a47700cb35bc84d4954f762a193b150722612e
Gitweb:     http://git.kernel.org/tip/e9a47700cb35bc84d4954f762a193b150722612e
Author:     Rajesh Borundia <rajesh.borundia@xxxxxxxxxx>
AuthorDate: Wed, 25 Aug 2010 04:03:02 +0000
Committer:  David S. Miller <davem@xxxxxxxxxxxxx>
CommitDate: Wed, 25 Aug 2010 14:15:27 -0700

qlcnic: eswitch config fixes

o remove validation before deleting vlan id
o Add missing 'break' while deleting vlan id.

Signed-off-by: Rajesh Borundia <rajesh.borundia@xxxxxxxxxx>
Signed-off-by: Amit Kumar Salecha <amit.salecha@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
---
 drivers/net/qlcnic/qlcnic_ctx.c  |    1 +
 drivers/net/qlcnic/qlcnic_main.c |   26 ++++++++++++++------------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/net/qlcnic/qlcnic_ctx.c b/drivers/net/qlcnic/qlcnic_ctx.c
index 315705b..bd4b06b 100644
--- a/drivers/net/qlcnic/qlcnic_ctx.c
+++ b/drivers/net/qlcnic/qlcnic_ctx.c
@@ -1160,6 +1160,7 @@ int qlcnic_config_switch_port(struct qlcnic_adapter *adapter,
 	case QLCNIC_DEL_VLAN:
 			arg1 |= (BIT_3 | BIT_5);
 			arg1 &= ~(0x0ffff << 16);
+			break;
 	default:
 		return err;
 	}
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index 46b9137..5d93b46 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -3301,8 +3301,6 @@ validate_esw_config(struct qlcnic_adapter *adapter,
 				return QL_STATUS_INVALID_PARAM;
 			break;
 		case QLCNIC_DEL_VLAN:
-			if (!IS_VALID_VLAN(esw_cfg[i].vlan_id))
-				return QL_STATUS_INVALID_PARAM;
 			if (!esw_cfg[i].op_type)
 				return QL_STATUS_INVALID_PARAM;
 			break;
@@ -3338,21 +3336,25 @@ qlcnic_sysfs_write_esw_config(struct file *file, struct kobject *kobj,
 		if (adapter->op_mode == QLCNIC_MGMT_FUNC)
 			if (qlcnic_config_switch_port(adapter, &esw_cfg[i]))
 				return QL_STATUS_INVALID_PARAM;
-		if (adapter->ahw.pci_func == esw_cfg[i].pci_func)
-			op_mode = esw_cfg[i].op_mode;
-			qlcnic_get_eswitch_port_config(adapter, &esw_cfg[i]);
-			esw_cfg[i].op_mode = op_mode;
-			esw_cfg[i].pci_func = adapter->ahw.pci_func;
-			switch (esw_cfg[i].op_mode) {
-			case QLCNIC_PORT_DEFAULTS:
-				qlcnic_set_eswitch_port_features(adapter,
-								&esw_cfg[i]);
-				break;
+
+		if (adapter->ahw.pci_func != esw_cfg[i].pci_func)
+			continue;
+
+		op_mode = esw_cfg[i].op_mode;
+		qlcnic_get_eswitch_port_config(adapter, &esw_cfg[i]);
+		esw_cfg[i].op_mode = op_mode;
+		esw_cfg[i].pci_func = adapter->ahw.pci_func;
+
+		switch (esw_cfg[i].op_mode) {
+		case QLCNIC_PORT_DEFAULTS:
+			qlcnic_set_eswitch_port_features(adapter, &esw_cfg[i]);
+			break;
 		}
 	}
 
 	if (adapter->op_mode != QLCNIC_MGMT_FUNC)
 		goto out;
+
 	for (i = 0; i < count; i++) {
 		pci_func = esw_cfg[i].pci_func;
 		npar = &adapter->npars[pci_func];
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux