etherdevice: Add ether_addr_equal_unaligned
Add a generic routine to test if possibly unaligned to u16 Ethernet addresses are equal. If CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set, this uses the slightly faster generic routine ether_addr_equal, otherwise this uses memcmp. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4e58879346
commit
73eaef87e9
|
@ -265,6 +265,24 @@ static inline bool ether_addr_equal_64bits(const u8 addr1[6+2],
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ether_addr_equal_unaligned - Compare two not u16 aligned Ethernet addresses
|
||||||
|
* @addr1: Pointer to a six-byte array containing the Ethernet address
|
||||||
|
* @addr2: Pointer other six-byte array containing the Ethernet address
|
||||||
|
*
|
||||||
|
* Compare two Ethernet addresses, returns true if equal
|
||||||
|
*
|
||||||
|
* Please note: Use only when any Ethernet address may not be u16 aligned.
|
||||||
|
*/
|
||||||
|
static inline bool ether_addr_equal_unaligned(const u8 *addr1, const u8 *addr2)
|
||||||
|
{
|
||||||
|
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
|
||||||
|
return ether_addr_equal(addr1, addr2);
|
||||||
|
#else
|
||||||
|
return memcmp(addr1, addr2, ETH_ALEN) == 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* is_etherdev_addr - Tell if given Ethernet address belongs to the device.
|
* is_etherdev_addr - Tell if given Ethernet address belongs to the device.
|
||||||
* @dev: Pointer to a device structure
|
* @dev: Pointer to a device structure
|
||||||
|
|
Loading…
Reference in New Issue