All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro
@ 2010-11-08 23:53 Sven Eckelmann
  2010-11-08 23:53 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts Sven Eckelmann
  2010-11-17 16:26 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Marek Lindner
  0 siblings, 2 replies; 7+ messages in thread
From: Sven Eckelmann @ 2010-11-08 23:53 UTC (permalink / raw)
  To: b.a.t.m.a.n

The kernel headers already provide different versions of a min/max macro
which should be used by all modules according to
Documentation/CodingStyle.

Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
---
 batman-adv/hard-interface.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/batman-adv/hard-interface.c b/batman-adv/hard-interface.c
index 5a1d631..e22f0dd 100644
--- a/batman-adv/hard-interface.c
+++ b/batman-adv/hard-interface.c
@@ -31,8 +31,6 @@
 
 #include <linux/if_arp.h>
 
-#define MIN(x, y) ((x) < (y) ? (x) : (y))
-
 /* protect update critical side of if_list - but not the content */
 static DEFINE_SPINLOCK(if_list_lock);
 
@@ -220,8 +218,8 @@ int hardif_min_mtu(struct net_device *soft_iface)
 		if (batman_if->soft_iface != soft_iface)
 			continue;
 
-		min_mtu = MIN(batman_if->net_dev->mtu - BAT_HEADER_LEN,
-			      min_mtu);
+		min_mtu = min_t(int, batman_if->net_dev->mtu - BAT_HEADER_LEN,
+				min_mtu);
 	}
 	rcu_read_unlock();
 out:
-- 
1.7.2.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts
  2010-11-08 23:53 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Sven Eckelmann
@ 2010-11-08 23:53 ` Sven Eckelmann
  2010-11-09  8:32   ` Linus Lüssing
  2010-11-09  9:27   ` [B.A.T.M.A.N.] [PATCHv2 " Sven Eckelmann
  2010-11-17 16:26 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Marek Lindner
  1 sibling, 2 replies; 7+ messages in thread
From: Sven Eckelmann @ 2010-11-08 23:53 UTC (permalink / raw)
  To: b.a.t.m.a.n

linux/etherdevice.h already provides functions to classify different
ethernet addresses. These inlineable functions should be used instead of
custom functions.

The check for multicast can also be removed because
is_multicast_ether_addr was only used together with
is_broadcast_ether_addr and for every ethernet address x following is
always true:

is_broadcast_ether_addr(x) => is_multicast_ether_addr(x)

or when looking more at the implementation:

(FF:FF:FF:FF:FF:FF == x) => [(01:00:00:00:00:00 & x) != 00:00:00:00:00:00]

Reported-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
---
 batman-adv/main.c           |   10 ----------
 batman-adv/main.h           |    3 +--
 batman-adv/routing.c        |   16 ++++++++--------
 batman-adv/soft-interface.c |    2 +-
 batman-adv/unicast.c        |    2 +-
 batman-adv/vis.c            |    4 ++--
 6 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/batman-adv/main.c b/batman-adv/main.c
index c91e635..b827f6a 100644
--- a/batman-adv/main.c
+++ b/batman-adv/main.c
@@ -172,16 +172,6 @@ int is_my_mac(uint8_t *addr)
 
 }
 
-int is_bcast(uint8_t *addr)
-{
-	return (addr[0] == (uint8_t)0xff) && (addr[1] == (uint8_t)0xff);
-}
-
-int is_mcast(uint8_t *addr)
-{
-	return *addr & 0x01;
-}
-
 module_init(batman_init);
 module_exit(batman_exit);
 
diff --git a/batman-adv/main.h b/batman-adv/main.h
index 519d3b0..a362433 100644
--- a/batman-adv/main.h
+++ b/batman-adv/main.h
@@ -112,6 +112,7 @@
 #include <linux/mutex.h>	/* mutex */
 #include <linux/module.h>	/* needed by all modules */
 #include <linux/netdevice.h>	/* netdevice */
+#include <linux/etherdevice.h>  /* ethernet address classifaction */
 #include <linux/if_ether.h>	/* ethernet header */
 #include <linux/poll.h>		/* poll_table */
 #include <linux/kthread.h>	/* kernel threads */
@@ -141,8 +142,6 @@ void mesh_free(struct net_device *soft_iface);
 void inc_module_count(void);
 void dec_module_count(void);
 int is_my_mac(uint8_t *addr);
-int is_bcast(uint8_t *addr);
-int is_mcast(uint8_t *addr);
 
 #ifdef CONFIG_BATMAN_ADV_DEBUG
 int debug_log(struct bat_priv *bat_priv, char *fmt, ...);
diff --git a/batman-adv/routing.c b/batman-adv/routing.c
index 9f31167..d8b0c5a 100644
--- a/batman-adv/routing.c
+++ b/batman-adv/routing.c
@@ -770,11 +770,11 @@ int recv_bat_packet(struct sk_buff *skb, struct batman_if *batman_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with broadcast indication but unicast recipient */
-	if (!is_bcast(ethhdr->h_dest))
+	if (!is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* create a copy of the skb, if needed, to modify it. */
@@ -946,11 +946,11 @@ int recv_icmp_packet(struct sk_buff *skb, struct batman_if *recv_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with unicast indication but broadcast recipient */
-	if (is_bcast(ethhdr->h_dest))
+	if (is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* not for me */
@@ -1118,11 +1118,11 @@ static int check_unicast_packet(struct sk_buff *skb, int hdr_size)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with unicast indication but broadcast recipient */
-	if (is_bcast(ethhdr->h_dest))
+	if (is_broadcast_ether_addr(ethhdr->h_dest))
 		return -1;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return -1;
 
 	/* not for me */
@@ -1282,11 +1282,11 @@ int recv_bcast_packet(struct sk_buff *skb, struct batman_if *recv_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with broadcast indication but unicast recipient */
-	if (!is_bcast(ethhdr->h_dest))
+	if (!is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* ignore broadcasts sent by myself */
diff --git a/batman-adv/soft-interface.c b/batman-adv/soft-interface.c
index 1e55bdb..405d96e 100644
--- a/batman-adv/soft-interface.c
+++ b/batman-adv/soft-interface.c
@@ -378,7 +378,7 @@ int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	/* TODO: check this for locks */
 	hna_local_add(soft_iface, ethhdr->h_source);
 
-	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest)) {
+	if (is_broadcast_ether_addr(ethhdr->h_dest)) {
 		ret = gw_is_target(bat_priv, skb);
 
 		if (ret < 0)
diff --git a/batman-adv/unicast.c b/batman-adv/unicast.c
index 7b9385b..15d676f 100644
--- a/batman-adv/unicast.c
+++ b/batman-adv/unicast.c
@@ -283,7 +283,7 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
 	spin_lock_bh(&bat_priv->orig_hash_lock);
 
 	/* get routing information */
-	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest))
+	if (is_broadcast_ether_addr(ethhdr->h_dest))
 		orig_node = (struct orig_node *)gw_get_selected(bat_priv);
 	else
 		orig_node = ((struct orig_node *)hash_find(bat_priv->orig_hash,
diff --git a/batman-adv/vis.c b/batman-adv/vis.c
index 65676dc..957a086 100644
--- a/batman-adv/vis.c
+++ b/batman-adv/vis.c
@@ -472,7 +472,7 @@ void receive_client_update_packet(struct bat_priv *bat_priv,
 	int are_target = 0;
 
 	/* clients shall not broadcast. */
-	if (is_bcast(vis_packet->target_orig))
+	if (is_broadcast_ether_addr(vis_packet->target_orig))
 		return;
 
 	/* Are we the target for this VIS packet? */
@@ -755,7 +755,7 @@ static void send_vis_packet(struct bat_priv *bat_priv, struct vis_info *info)
 	       ETH_ALEN);
 	packet->ttl--;
 
-	if (is_bcast(packet->target_orig))
+	if (is_broadcast_ether_addr(packet->target_orig))
 		broadcast_vis_packet(bat_priv, info);
 	else
 		unicast_vis_packet(bat_priv, info);
-- 
1.7.2.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts
  2010-11-08 23:53 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts Sven Eckelmann
@ 2010-11-09  8:32   ` Linus Lüssing
  2010-11-09  9:20     ` Sven Eckelmann
  2010-11-09  9:27   ` [B.A.T.M.A.N.] [PATCHv2 " Sven Eckelmann
  1 sibling, 1 reply; 7+ messages in thread
From: Linus Lüssing @ 2010-11-09  8:32 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

> is_broadcast_ether_addr(x) => is_multicast_ether_addr(x)
> 
> or when looking more at the implementation:
> 
> (FF:FF:FF:FF:FF:FF == x) => [(01:00:00:00:00:00 & x) != 00:00:00:00:00:00]
> 
[...]
> -	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest)) {
> +	if (is_broadcast_ether_addr(ethhdr->h_dest)) {
>  		ret = gw_is_target(bat_priv, skb);

So, shouldn't that be the other way round?
is_multicast_ether_addr() instead?

Cheers,
Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts
  2010-11-09  8:32   ` Linus Lüssing
@ 2010-11-09  9:20     ` Sven Eckelmann
  0 siblings, 0 replies; 7+ messages in thread
From: Sven Eckelmann @ 2010-11-09  9:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

[-- Attachment #1: Type: Text/Plain, Size: 541 bytes --]

Linus Lüssing wrote:
> > is_broadcast_ether_addr(x) => is_multicast_ether_addr(x)
> > 
> > or when looking more at the implementation:
> > 
> > (FF:FF:FF:FF:FF:FF == x) => [(01:00:00:00:00:00 & x) !=
> > 00:00:00:00:00:00]
> 
> [...]
> 
> > -	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest)) {
> > +	if (is_broadcast_ether_addr(ethhdr->h_dest)) {
> > 
> >  		ret = gw_is_target(bat_priv, skb);
> 
> So, shouldn't that be the other way round?
> is_multicast_ether_addr() instead?

Correct.

Best regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [B.A.T.M.A.N.] [PATCHv2 2/2] batman-adv: Use kernel functions to identify broadcasts
  2010-11-08 23:53 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts Sven Eckelmann
  2010-11-09  8:32   ` Linus Lüssing
@ 2010-11-09  9:27   ` Sven Eckelmann
  2010-11-17 16:28     ` Marek Lindner
  1 sibling, 1 reply; 7+ messages in thread
From: Sven Eckelmann @ 2010-11-09  9:27 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: Tobias Klauser

linux/etherdevice.h already provides functions to classify different
ethernet addresses. These inlineable functions should be used instead of
custom functions.

The check for multicast together with multicast can also be replaced
with a single test for multicast because for every ethernet address x
following is always true:

is_broadcast_ether_addr(x) => is_multicast_ether_addr(x)

or when looking more at the implementation:

(FF:FF:FF:FF:FF:FF == x) => [(01:00:00:00:00:00 & x) != 00:00:00:00:00:00]

Reported-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Cc: Tobias Klauser <tklauser@distanz.ch>
---
tklauser: Please tell us how you want to handle that patch. If you want resend
yours or if it would be ok to use this patch - or maybe a third option.

 batman-adv/main.c           |   10 ----------
 batman-adv/main.h           |    3 +--
 batman-adv/routing.c        |   16 ++++++++--------
 batman-adv/soft-interface.c |    2 +-
 batman-adv/unicast.c        |    2 +-
 batman-adv/vis.c            |    4 ++--
 6 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/batman-adv/main.c b/batman-adv/main.c
index c91e635..b827f6a 100644
--- a/batman-adv/main.c
+++ b/batman-adv/main.c
@@ -172,16 +172,6 @@ int is_my_mac(uint8_t *addr)
 
 }
 
-int is_bcast(uint8_t *addr)
-{
-	return (addr[0] == (uint8_t)0xff) && (addr[1] == (uint8_t)0xff);
-}
-
-int is_mcast(uint8_t *addr)
-{
-	return *addr & 0x01;
-}
-
 module_init(batman_init);
 module_exit(batman_exit);
 
diff --git a/batman-adv/main.h b/batman-adv/main.h
index 519d3b0..a362433 100644
--- a/batman-adv/main.h
+++ b/batman-adv/main.h
@@ -112,6 +112,7 @@
 #include <linux/mutex.h>	/* mutex */
 #include <linux/module.h>	/* needed by all modules */
 #include <linux/netdevice.h>	/* netdevice */
+#include <linux/etherdevice.h>  /* ethernet address classifaction */
 #include <linux/if_ether.h>	/* ethernet header */
 #include <linux/poll.h>		/* poll_table */
 #include <linux/kthread.h>	/* kernel threads */
@@ -141,8 +142,6 @@ void mesh_free(struct net_device *soft_iface);
 void inc_module_count(void);
 void dec_module_count(void);
 int is_my_mac(uint8_t *addr);
-int is_bcast(uint8_t *addr);
-int is_mcast(uint8_t *addr);
 
 #ifdef CONFIG_BATMAN_ADV_DEBUG
 int debug_log(struct bat_priv *bat_priv, char *fmt, ...);
diff --git a/batman-adv/routing.c b/batman-adv/routing.c
index 9f31167..d8b0c5a 100644
--- a/batman-adv/routing.c
+++ b/batman-adv/routing.c
@@ -770,11 +770,11 @@ int recv_bat_packet(struct sk_buff *skb, struct batman_if *batman_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with broadcast indication but unicast recipient */
-	if (!is_bcast(ethhdr->h_dest))
+	if (!is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* create a copy of the skb, if needed, to modify it. */
@@ -946,11 +946,11 @@ int recv_icmp_packet(struct sk_buff *skb, struct batman_if *recv_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with unicast indication but broadcast recipient */
-	if (is_bcast(ethhdr->h_dest))
+	if (is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* not for me */
@@ -1118,11 +1118,11 @@ static int check_unicast_packet(struct sk_buff *skb, int hdr_size)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with unicast indication but broadcast recipient */
-	if (is_bcast(ethhdr->h_dest))
+	if (is_broadcast_ether_addr(ethhdr->h_dest))
 		return -1;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return -1;
 
 	/* not for me */
@@ -1282,11 +1282,11 @@ int recv_bcast_packet(struct sk_buff *skb, struct batman_if *recv_if)
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* packet with broadcast indication but unicast recipient */
-	if (!is_bcast(ethhdr->h_dest))
+	if (!is_broadcast_ether_addr(ethhdr->h_dest))
 		return NET_RX_DROP;
 
 	/* packet with broadcast sender address */
-	if (is_bcast(ethhdr->h_source))
+	if (is_broadcast_ether_addr(ethhdr->h_source))
 		return NET_RX_DROP;
 
 	/* ignore broadcasts sent by myself */
diff --git a/batman-adv/soft-interface.c b/batman-adv/soft-interface.c
index 1e55bdb..e93a99f 100644
--- a/batman-adv/soft-interface.c
+++ b/batman-adv/soft-interface.c
@@ -378,7 +378,7 @@ int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	/* TODO: check this for locks */
 	hna_local_add(soft_iface, ethhdr->h_source);
 
-	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest)) {
+	if (is_multicast_ether_addr(ethhdr->h_dest)) {
 		ret = gw_is_target(bat_priv, skb);
 
 		if (ret < 0)
diff --git a/batman-adv/unicast.c b/batman-adv/unicast.c
index 7b9385b..dc2e28b 100644
--- a/batman-adv/unicast.c
+++ b/batman-adv/unicast.c
@@ -283,7 +283,7 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
 	spin_lock_bh(&bat_priv->orig_hash_lock);
 
 	/* get routing information */
-	if (is_bcast(ethhdr->h_dest) || is_mcast(ethhdr->h_dest))
+	if (is_multicast_ether_addr(ethhdr->h_dest))
 		orig_node = (struct orig_node *)gw_get_selected(bat_priv);
 	else
 		orig_node = ((struct orig_node *)hash_find(bat_priv->orig_hash,
diff --git a/batman-adv/vis.c b/batman-adv/vis.c
index 65676dc..957a086 100644
--- a/batman-adv/vis.c
+++ b/batman-adv/vis.c
@@ -472,7 +472,7 @@ void receive_client_update_packet(struct bat_priv *bat_priv,
 	int are_target = 0;
 
 	/* clients shall not broadcast. */
-	if (is_bcast(vis_packet->target_orig))
+	if (is_broadcast_ether_addr(vis_packet->target_orig))
 		return;
 
 	/* Are we the target for this VIS packet? */
@@ -755,7 +755,7 @@ static void send_vis_packet(struct bat_priv *bat_priv, struct vis_info *info)
 	       ETH_ALEN);
 	packet->ttl--;
 
-	if (is_bcast(packet->target_orig))
+	if (is_broadcast_ether_addr(packet->target_orig))
 		broadcast_vis_packet(bat_priv, info);
 	else
 		unicast_vis_packet(bat_priv, info);
-- 
1.7.2.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro
  2010-11-08 23:53 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Sven Eckelmann
  2010-11-08 23:53 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts Sven Eckelmann
@ 2010-11-17 16:26 ` Marek Lindner
  1 sibling, 0 replies; 7+ messages in thread
From: Marek Lindner @ 2010-11-17 16:26 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Tuesday 09 November 2010 00:53:00 Sven Eckelmann wrote:
> The kernel headers already provide different versions of a min/max macro
> which should be used by all modules according to
> Documentation/CodingStyle.

Applied in revision 1872.

Thanks,
Marek

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCHv2 2/2] batman-adv: Use kernel functions to identify broadcasts
  2010-11-09  9:27   ` [B.A.T.M.A.N.] [PATCHv2 " Sven Eckelmann
@ 2010-11-17 16:28     ` Marek Lindner
  0 siblings, 0 replies; 7+ messages in thread
From: Marek Lindner @ 2010-11-17 16:28 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Tuesday 09 November 2010 10:27:28 Sven Eckelmann wrote:
> linux/etherdevice.h already provides functions to classify different
> ethernet addresses. These inlineable functions should be used instead of
> custom functions.

Applied in revision 1873.

Thanks,
Marek

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-11-17 16:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-08 23:53 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Sven Eckelmann
2010-11-08 23:53 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Use kernel functions to identify broadcasts Sven Eckelmann
2010-11-09  8:32   ` Linus Lüssing
2010-11-09  9:20     ` Sven Eckelmann
2010-11-09  9:27   ` [B.A.T.M.A.N.] [PATCHv2 " Sven Eckelmann
2010-11-17 16:28     ` Marek Lindner
2010-11-17 16:26 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use kernel version min macro Marek Lindner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.