Commit a42e6aee authored by Dmitry Bogdanov's avatar Dmitry Bogdanov Committed by David S. Miller

net: atlantic: fix ip dst and ipv6 address filters

This patch fixes ip dst and ipv6 address filters.
There were 2 mistakes in the code, which led to the issue:
* invalid register was used for ipv4 dst address;
* incorrect write order of dwords for ipv6 addresses.

Fixes: 23e7a718 ("net: aquantia: add rx-flow filter definitions")
Signed-off-by: default avatarDmitry Bogdanov <dbogdanov@marvell.com>
Signed-off-by: default avatarMark Starovoytov <mstarovoitov@marvell.com>
Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 086c18f2
...@@ -1700,7 +1700,7 @@ void hw_atl_rpfl3l4_ipv6_src_addr_set(struct aq_hw_s *aq_hw, u8 location, ...@@ -1700,7 +1700,7 @@ void hw_atl_rpfl3l4_ipv6_src_addr_set(struct aq_hw_s *aq_hw, u8 location,
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
aq_hw_write_reg(aq_hw, aq_hw_write_reg(aq_hw,
HW_ATL_RPF_L3_SRCA_ADR(location + i), HW_ATL_RPF_L3_SRCA_ADR(location + i),
ipv6_src[i]); ipv6_src[3 - i]);
} }
void hw_atl_rpfl3l4_ipv6_dest_addr_set(struct aq_hw_s *aq_hw, u8 location, void hw_atl_rpfl3l4_ipv6_dest_addr_set(struct aq_hw_s *aq_hw, u8 location,
...@@ -1711,7 +1711,7 @@ void hw_atl_rpfl3l4_ipv6_dest_addr_set(struct aq_hw_s *aq_hw, u8 location, ...@@ -1711,7 +1711,7 @@ void hw_atl_rpfl3l4_ipv6_dest_addr_set(struct aq_hw_s *aq_hw, u8 location,
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
aq_hw_write_reg(aq_hw, aq_hw_write_reg(aq_hw,
HW_ATL_RPF_L3_DSTA_ADR(location + i), HW_ATL_RPF_L3_DSTA_ADR(location + i),
ipv6_dest[i]); ipv6_dest[3 - i]);
} }
u32 hw_atl_sem_ram_get(struct aq_hw_s *self) u32 hw_atl_sem_ram_get(struct aq_hw_s *self)
......
...@@ -1360,7 +1360,7 @@ ...@@ -1360,7 +1360,7 @@
*/ */
/* Register address for bitfield pif_rpf_l3_da0_i[31:0] */ /* Register address for bitfield pif_rpf_l3_da0_i[31:0] */
#define HW_ATL_RPF_L3_DSTA_ADR(filter) (0x000053B0 + (filter) * 0x4) #define HW_ATL_RPF_L3_DSTA_ADR(filter) (0x000053D0 + (filter) * 0x4)
/* Bitmask for bitfield l3_da0[1F:0] */ /* Bitmask for bitfield l3_da0[1F:0] */
#define HW_ATL_RPF_L3_DSTA_MSK 0xFFFFFFFFu #define HW_ATL_RPF_L3_DSTA_MSK 0xFFFFFFFFu
/* Inverted bitmask for bitfield l3_da0[1F:0] */ /* Inverted bitmask for bitfield l3_da0[1F:0] */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment