2013-04-19 02:53:21

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the net-next tree with the net tree

Hi all,

Today's linux-next merge of the net-next tree got a conflict in
net/batman-adv/routing.c between commit fe8a93b95145 ("batman-adv: make
is_my_mac() check for the current mesh only") from the net tree and
commits f86ce0ad107b ("batman-adv: Return reason for failure in
batadv_check_unicast_packet()") and 612d2b4fe0a1 ("batman-adv: network
coding - save overheard and tx packets for decoding") from the net-next
tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

--
Cheers,
Stephen Rothwell [email protected]

diff --cc net/batman-adv/routing.c
index 319f290,8f88967..0000000
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@@ -548,8 -549,17 +549,19 @@@ batadv_find_ifalter_router(struct batad
return router;
}

+ /**
+ * batadv_check_unicast_packet - Check for malformed unicast packets
++ * @batpriv: some description ...
+ * @skb: packet to check
+ * @hdr_size: size of header to pull
+ *
+ * Check for short header and bad addresses in given packet. Returns negative
+ * value when check fails and 0 otherwise. The negative value depends on the
+ * reason: -ENODATA for bad header, -EBADR for broadcast destination or source,
+ * and -EREMOTE for non-local (other host) destination.
+ */
-static int batadv_check_unicast_packet(struct sk_buff *skb, int hdr_size)
+static int batadv_check_unicast_packet(struct batadv_priv *bat_priv,
+ struct sk_buff *skb, int hdr_size)
{
struct ethhdr *ethhdr;

@@@ -565,11 -575,11 +577,11 @@@

/* packet with broadcast sender address */
if (is_broadcast_ether_addr(ethhdr->h_source))
- return -1;
+ return -EBADR;

/* not for me */
- if (!batadv_is_my_mac(ethhdr->h_dest))
+ if (!batadv_is_my_mac(bat_priv, ethhdr->h_dest))
- return -1;
+ return -EREMOTE;

return 0;
}
@@@ -1046,7 -1058,16 +1061,16 @@@ int batadv_recv_unicast_packet(struct s
if (is4addr)
hdr_size = sizeof(*unicast_4addr_packet);

- if (batadv_check_unicast_packet(bat_priv, skb, hdr_size) < 0)
+ /* function returns -EREMOTE for promiscuous packets */
- check = batadv_check_unicast_packet(skb, hdr_size);
++ check = batadv_check_unicast_packet(bat_priv, skb, hdr_size);
+
+ /* Even though the packet is not for us, we might save it to use for
+ * decoding a later received coded packet
+ */
+ if (check == -EREMOTE)
+ batadv_nc_skb_store_sniffed_unicast(bat_priv, skb);
+
+ if (check < 0)
return NET_RX_DROP;

if (!batadv_check_unicast_ttvn(bat_priv, skb))


Attachments:
(No filename) (2.49 kB)
(No filename) (836.00 B)
Download all attachments

2013-04-23 00:38:53

by David Miller

[permalink] [raw]
Subject: Re: linux-next: manual merge of the net-next tree with the net tree

From: Stephen Rothwell <[email protected]>
Date: Fri, 19 Apr 2013 12:53:04 +1000

> Today's linux-next merge of the net-next tree got a conflict in
> net/batman-adv/routing.c between commit fe8a93b95145 ("batman-adv: make
> is_my_mac() check for the current mesh only") from the net tree and
> commits f86ce0ad107b ("batman-adv: Return reason for failure in
> batadv_check_unicast_packet()") and 612d2b4fe0a1 ("batman-adv: network
> coding - save overheard and tx packets for decoding") from the net-next
> tree.
>
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

I've merged net into net-next and added all the necessary fixups
in the merge commit.

Thanks!