]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/qlcnic/qlcnic_main.c
qlcnic: eswitch config fixes
[net-next-2.6.git] / drivers / net / qlcnic / qlcnic_main.c
index 46b9137ca893485bbde76b55fdbc1e999447b331..5d93b464681a9cbe6c10bb027b5b985e792be817 100644 (file)
@@ -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];