summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-05-26 00:08:30 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2006-06-18 06:26:00 +0200
commitaecbd4e45c2e469e0452ffb2c0b0d881e2815bb8 (patch)
tree4e5a1e9e2625287acfcb27e693c634700bf57611
parent[I/OAT]: Do not use for_each_cpu(). (diff)
downloadlinux-aecbd4e45c2e469e0452ffb2c0b0d881e2815bb8.tar.xz
linux-aecbd4e45c2e469e0452ffb2c0b0d881e2815bb8.zip
[LLC]: use more efficient ether address routines
Use more cache efficient Ethernet address manipulation functions in etherdevice.h. Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
-rw-r--r--include/net/llc_if.h13
-rw-r--r--net/llc/llc_if.c2
2 files changed, 6 insertions, 9 deletions
diff --git a/include/net/llc_if.h b/include/net/llc_if.h
index 090eaa0d71f9..a05d04ac4513 100644
--- a/include/net/llc_if.h
+++ b/include/net/llc_if.h
@@ -16,6 +16,7 @@
#include <linux/if.h>
#include <linux/if_arp.h>
#include <linux/llc.h>
+#include <linux/etherdevice.h>
#include <net/llc.h>
#define LLC_DATAUNIT_PRIM 1
@@ -61,8 +62,6 @@
#define LLC_STATUS_CONFLICT 7 /* disconnect conn */
#define LLC_STATUS_RESET_DONE 8 /* */
-extern u8 llc_mac_null_var[IFHWADDRLEN];
-
/**
* llc_mac_null - determines if a address is a null mac address
* @mac: Mac address to test if null.
@@ -70,12 +69,12 @@ extern u8 llc_mac_null_var[IFHWADDRLEN];
* Determines if a given address is a null mac address. Returns 0 if the
* address is not a null mac, 1 if the address is a null mac.
*/
-static __inline__ int llc_mac_null(u8 *mac)
+static inline int llc_mac_null(const u8 *mac)
{
- return !memcmp(mac, llc_mac_null_var, IFHWADDRLEN);
+ return is_zero_ether_addr(mac);
}
-static __inline__ int llc_addrany(struct llc_addr *addr)
+static inline int llc_addrany(const struct llc_addr *addr)
{
return llc_mac_null(addr->mac) && !addr->lsap;
}
@@ -89,9 +88,9 @@ static __inline__ int llc_addrany(struct llc_addr *addr)
* is not a complete match up to len, 1 if a complete match up to len is
* found.
*/
-static __inline__ int llc_mac_match(u8 *mac1, u8 *mac2)
+static inline int llc_mac_match(const u8 *mac1, const u8 *mac2)
{
- return !memcmp(mac1, mac2, IFHWADDRLEN);
+ return !compare_ether_addr(mac1, mac2);
}
extern int llc_establish_connection(struct sock *sk, u8 *lmac,
diff --git a/net/llc/llc_if.c b/net/llc/llc_if.c
index ba90f7f0801a..5ae47be7dde0 100644
--- a/net/llc/llc_if.c
+++ b/net/llc/llc_if.c
@@ -26,8 +26,6 @@
#include <net/llc_c_st.h>
#include <net/tcp_states.h>
-u8 llc_mac_null_var[IFHWADDRLEN];
-
/**
* llc_build_and_send_pkt - Connection data sending for upper layers.
* @sk: connection