diff mbox

net: cpsw: fix dual_emac VLAN issue

Message ID 1396969110-3114-2-git-send-email-yegorslists@googlemail.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Yegor Yefremov April 8, 2014, 2:58 p.m. UTC
From: Yegor Yefremov <yegorslists@googlemail.com>

CPSW shows following behavior: some stations in LAN don't
answer CPSW's ARP request. Kernel 3.2 could talk to all stations in
the same LAN.

Use the same cpsw_ale_add_vlan procedure as in kernel 3.2.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
 drivers/net/ethernet/ti/cpsw.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

Comments

David Miller April 8, 2014, 6:15 p.m. UTC | #1
From: yegorslists@googlemail.com
Date: Tue,  8 Apr 2014 16:58:30 +0200

> From: Yegor Yefremov <yegorslists@googlemail.com>
> 
> CPSW shows following behavior: some stations in LAN don't
> answer CPSW's ARP request. Kernel 3.2 could talk to all stations in
> the same LAN.
> 
> Use the same cpsw_ale_add_vlan procedure as in kernel 3.2.
> 
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>

The CPSW driver was not added to the tree until v3.3, so saying
you're restoring behavior that existed in v3.2 doesn't make any
sense at all.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yegor Yefremov April 8, 2014, 6:57 p.m. UTC | #2
On Tue, Apr 8, 2014 at 8:15 PM, David Miller <davem@redhat.com> wrote:
> From: yegorslists@googlemail.com
> Date: Tue,  8 Apr 2014 16:58:30 +0200
>
>> From: Yegor Yefremov <yegorslists@googlemail.com>
>>
>> CPSW shows following behavior: some stations in LAN don't
>> answer CPSW's ARP request. Kernel 3.2 could talk to all stations in
>> the same LAN.
>>
>> Use the same cpsw_ale_add_vlan procedure as in kernel 3.2.
>>
>> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
>
> The CPSW driver was not added to the tree until v3.3, so saying
> you're restoring behavior that existed in v3.2 doesn't make any
> sense at all.

It would make sense, if I had said, that it was TI's PSP kernel
(http://arago-project.org/git/projects/?p=linux-am33x.git;a=commit;h=6afa003a0b06a0376c941436b38204ba2edc4a98).
This was the first time dual_emac was introduced. I will include this
info in v2.

Today a new thread was opended on TI's forum concerning this issue:
http://e2e.ti.com/support/arm/sitara_arm/f/791/p/333389/1162614.aspx

Yegor
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 5d5fec6..aa06370 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1040,11 +1040,13 @@  static inline void cpsw_add_dual_emac_def_ale_entries(
 	else
 		slave_write(slave, slave->port_vlan, CPSW2_PORT_VLAN);
 	cpsw_ale_add_vlan(priv->ale, slave->port_vlan, port_mask,
-			  port_mask, port_mask, 0);
+			  0, port_mask, port_mask);
 	cpsw_ale_add_mcast(priv->ale, priv->ndev->broadcast,
 			   port_mask, ALE_VLAN, slave->port_vlan, 0);
 	cpsw_ale_add_ucast(priv->ale, priv->mac_addr,
 		priv->host_port, ALE_VLAN, slave->port_vlan);
+	cpsw_ale_add_vlan(priv->ale, 0, ALE_ALL_PORTS << priv->host_port,
+		ALE_ALL_PORTS << priv->host_port, priv->host_port, 0);
 }
 
 static void soft_reset_slave(struct cpsw_slave *slave)