Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73eaef87 authored by Joe Perches's avatar Joe Perches Committed by David S. Miller
Browse files

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: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4e588793
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -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