net: add helper eth_hw_addr_crc
Several drivers use the same code as basis for filter hashes. Therefore let's factor it out to a helper. This way drivers don't have to access struct netdev_hw_addr internals. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e90c9fcedc
commit
b86cd700ed
|
@ -20,6 +20,7 @@
|
|||
#include <linux/if_ether.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/crc32.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
|
||||
|
@ -265,6 +266,17 @@ static inline void eth_hw_addr_random(struct net_device *dev)
|
|||
eth_random_addr(dev->dev_addr);
|
||||
}
|
||||
|
||||
/**
|
||||
* eth_hw_addr_crc - Calculate CRC from netdev_hw_addr
|
||||
* @ha: pointer to hardware address
|
||||
*
|
||||
* Calculate CRC from a hardware address as basis for filter hashes.
|
||||
*/
|
||||
static inline u32 eth_hw_addr_crc(struct netdev_hw_addr *ha)
|
||||
{
|
||||
return ether_crc(ETH_ALEN, ha->addr);
|
||||
}
|
||||
|
||||
/**
|
||||
* ether_addr_copy - Copy an Ethernet address
|
||||
* @dst: Pointer to a six-byte array Ethernet address destination
|
||||
|
|
Loading…
Reference in New Issue