+11
-14
drivers/net/ethernet/ti/cpsw.c
+11
-14
drivers/net/ethernet/ti/cpsw.c
···
2086
2086
int i;
2087
2087
2088
2088
for (i = 0; i < cpsw->data.slaves; i++) {
2089
-
if (vid == cpsw->slaves[i].port_vlan)
2090
-
return -EINVAL;
2089
+
if (vid == cpsw->slaves[i].port_vlan) {
2090
+
ret = -EINVAL;
2091
+
goto err;
2092
+
}
2091
2093
}
2092
2094
}
2093
2095
2094
2096
dev_info(priv->dev, "Adding vlanid %d to vlan filter\n", vid);
2095
2097
ret = cpsw_add_vlan_ale_entry(priv, vid);
2096
-
2098
+
err:
2097
2099
pm_runtime_put(cpsw->dev);
2098
2100
return ret;
2099
2101
}
···
2121
2119
2122
2120
for (i = 0; i < cpsw->data.slaves; i++) {
2123
2121
if (vid == cpsw->slaves[i].port_vlan)
2124
-
return -EINVAL;
2122
+
goto err;
2125
2123
}
2126
2124
}
2127
2125
2128
2126
dev_info(priv->dev, "removing vlanid %d from vlan filter\n", vid);
2129
2127
ret = cpsw_ale_del_vlan(cpsw->ale, vid, 0);
2130
-
if (ret != 0)
2131
-
return ret;
2132
-
2133
-
ret = cpsw_ale_del_ucast(cpsw->ale, priv->mac_addr,
2134
-
HOST_PORT_NUM, ALE_VLAN, vid);
2135
-
if (ret != 0)
2136
-
return ret;
2137
-
2138
-
ret = cpsw_ale_del_mcast(cpsw->ale, priv->ndev->broadcast,
2139
-
0, ALE_VLAN, vid);
2128
+
ret |= cpsw_ale_del_ucast(cpsw->ale, priv->mac_addr,
2129
+
HOST_PORT_NUM, ALE_VLAN, vid);
2130
+
ret |= cpsw_ale_del_mcast(cpsw->ale, priv->ndev->broadcast,
2131
+
0, ALE_VLAN, vid);
2132
+
err:
2140
2133
pm_runtime_put(cpsw->dev);
2141
2134
return ret;
2142
2135
}