|
@@ -591,8 +591,8 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
|
|
|
if (enable) {
|
|
|
unsigned long timeout = jiffies + HZ;
|
|
|
|
|
|
- /* Disable Learn for all ports */
|
|
|
- for (i = 0; i < priv->data.slaves; i++) {
|
|
|
+ /* Disable Learn for all ports (host is port 0 and slaves are port 1 and up */
|
|
|
+ for (i = 0; i <= priv->data.slaves; i++) {
|
|
|
cpsw_ale_control_set(ale, i,
|
|
|
ALE_PORT_NOLEARN, 1);
|
|
|
cpsw_ale_control_set(ale, i,
|
|
@@ -616,11 +616,11 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
|
|
|
cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 1);
|
|
|
dev_dbg(&ndev->dev, "promiscuity enabled\n");
|
|
|
} else {
|
|
|
- /* Flood All Unicast Packets to Host port */
|
|
|
+ /* Don't Flood All Unicast Packets to Host port */
|
|
|
cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 0);
|
|
|
|
|
|
- /* Enable Learn for all ports */
|
|
|
- for (i = 0; i < priv->data.slaves; i++) {
|
|
|
+ /* Enable Learn for all ports (host is port 0 and slaves are port 1 and up */
|
|
|
+ for (i = 0; i <= priv->data.slaves; i++) {
|
|
|
cpsw_ale_control_set(ale, i,
|
|
|
ALE_PORT_NOLEARN, 0);
|
|
|
cpsw_ale_control_set(ale, i,
|