linux/drivers/net/ethernet/freescale/enetc
Vladimir Oltean e366a39208 net: enetc: don't depend on system endianness in enetc_set_mac_ht_flt
When enetc runs out of exact match entries for unicast address
filtering, it switches to an approach based on hash tables, where
multiple MAC addresses might end up in the same bucket.

However, the enetc_set_mac_ht_flt function currently depends on the
system endianness, because it interprets the 64-bit hash value as an
array of two u32 elements. Modify this to use lower_32_bits and
upper_32_bits.

Tested by forcing enetc to go into hash table mode by creating two
macvlan upper interfaces:

ip link add link eno0 address 00:01:02:03:00:00 eno0.0 type macvlan && ip link set eno0.0 up
ip link add link eno0 address 00:01:02:03:00:01 eno0.1 type macvlan && ip link set eno0.1 up

and verified that the same bit values are written to the registers
before and after:

enetc_sync_mac_filters: addr 00:00:80:00:40:10 exact match 0
enetc_sync_mac_filters: addr 00:00:00:00:80:00 exact match 0
enetc_set_mac_ht_flt: hash 0x80008000000000 UMHFR0 0x0 UMHFR1 0x800080

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-24 16:28:59 -07:00
..
enetc_cbdr.c net: enetc: pass bd_count as an argument to enetc_setup_cbdr 2021-03-10 13:14:15 -08:00
enetc_ethtool.c enetc: Fix reporting of h/w packet counters 2020-12-07 16:57:38 -08:00
enetc_hw.h net: enetc: set MAC RX FIFO to recommended value 2021-03-08 12:03:42 -08:00
enetc_mdio.c enetc: reorder macros and functions 2021-01-05 15:19:19 -08:00
enetc_msg.c enetc: Add vf to pf messaging support 2019-01-24 21:55:53 -08:00
enetc_pci_mdio.c net: enetc: fix an issue about leak system resources 2020-05-04 10:51:20 -07:00
enetc_pf.c net: enetc: don't depend on system endianness in enetc_set_mac_ht_flt 2021-03-24 16:28:59 -07:00
enetc_pf.h enetc: Migrate to PHYLINK and PCS_LYNX 2020-10-11 11:04:42 -07:00
enetc_ptp.c enetc: Add missing call to 'pci_free_irq_vectors()' in probe and remove functions 2019-08-31 23:53:17 -07:00
enetc_qos.c flow_offload: reject configuration of packet-per-second policing in offload drivers 2021-03-13 14:18:09 -08:00
enetc_vf.c net: enetc: teardown CBDR during PF/VF unbind 2021-03-19 12:13:11 -07:00
enetc.c net: enetc: make enetc_refill_rx_ring update the consumer index 2021-03-10 13:14:15 -08:00
enetc.h net: enetc: use enum enetc_active_offloads 2021-03-10 13:14:15 -08:00
Kconfig enetc: auto select PHYLIB and MDIO_DEVRES 2021-02-11 18:12:47 -08:00
Makefile enetc: Make MDIO accessors more generic and export to include/linux/fsl 2020-01-05 23:22:32 -08:00