
From: Andrew Morton <akpm@osdl.org>

Hilarious hackery to prevent this:

In file included from net/ieee80211/ieee80211_tx.c:47:
include/net/ieee80211.h:629: redefinition of `is_multicast_ether_addr'
include/linux/etherdevice.h:67: `is_multicast_ether_addr' previously defined here

I wonder which version of this function is correct?

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 include/linux/etherdevice.h |    3 +++
 include/net/ieee80211.h     |    4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff -puN include/net/ieee80211.h~is_multicast_ether_addr-hack include/net/ieee80211.h
--- 25/include/net/ieee80211.h~is_multicast_ether_addr-hack	2005-05-31 17:55:32.000000000 -0700
+++ 25-akpm/include/net/ieee80211.h	2005-05-31 17:56:10.000000000 -0700
@@ -624,11 +624,13 @@ enum ieee80211_state {
 #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
 #define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
 
-
+#define IS_MULTICAST_ETHER_ADDR_HACK_1
+#ifndef IS_MULTICAST_ETHER_ADDR_HACK_2
 extern inline int is_multicast_ether_addr(const u8 *addr)
 {
 	return ((addr[0] != 0xff) && (0x01 & addr[0]));
 }
+#endif
 
 extern inline int is_broadcast_ether_addr(const u8 *addr)
 {
diff -puN include/linux/etherdevice.h~is_multicast_ether_addr-hack include/linux/etherdevice.h
--- 25/include/linux/etherdevice.h~is_multicast_ether_addr-hack	2005-05-31 17:55:32.000000000 -0700
+++ 25-akpm/include/linux/etherdevice.h	2005-05-31 17:56:26.000000000 -0700
@@ -55,6 +55,8 @@ static inline int is_zero_ether_addr(con
 	return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);
 }
 
+#define IS_MULTICAST_ETHER_ADDR_HACK_2
+#ifndef IS_MULTICAST_ETHER_ADDR_HACK_1
 /**
  * is_multicast_ether_addr - Determine if the given Ethernet address is a
  * multicast address.
@@ -67,6 +69,7 @@ static inline int is_multicast_ether_add
 {
 	return addr[0] & 0x01;
 }
+#endif
 
 /**
  * is_valid_ether_addr - Determine if the given Ethernet address is valid
_
