Subject: linux-next: build failure after merge of the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 19 Apr 2013 13:21:27 +1000

Hi all,

After merging the net-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:

net/batman-adv/network-coding.c: In function 'batadv_nc_skb_store_sniffed_unicast':
net/batman-adv/network-coding.c:1487:2: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'unsigned char *'
net/batman-adv/network-coding.c:1487:2: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here
net/batman-adv/network-coding.c: In function 'batadv_nc_skb_decode_packet':
net/batman-adv/network-coding.c:1540:2: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'uint8_t *'
net/batman-adv/network-coding.c:1540:2: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here
net/batman-adv/network-coding.c: In function 'batadv_nc_find_decoding_packet':
net/batman-adv/network-coding.c:1611:2: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'uint8_t *'
net/batman-adv/network-coding.c:1611:2: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here
net/batman-adv/network-coding.c: In function 'batadv_nc_recv_coded_packet':
net/batman-adv/network-coding.c:1678:2: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'unsigned char *'
net/batman-adv/network-coding.c:1678:2: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here
net/batman-adv/network-coding.c:1679:6: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'uint8_t *'
net/batman-adv/network-coding.c:1679:6: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here
net/batman-adv/network-coding.c:1683:2: warning: passing argument 1 of 'batadv_is_my_mac' from incompatible pointer type [enabled by default]
net/batman-adv/main.h:168:5: note: expected 'struct batadv_priv *' but argument is of type 'uint8_t *'
net/batman-adv/network-coding.c:1683:2: error: too few arguments to function 'batadv_is_my_mac'
net/batman-adv/main.h:168:5: note: declared here

Caused by commits 612d2b4fe0a1 ("batman-adv: network coding - save
overheard and tx packets for decoding") and 2df5278b0267 ("batman-adv:
network coding - receive coded packets and decode them") from the
net-next tree interacting with commit fe8a93b95145 ("batman-adv: make
is_my_mac() check for the current mesh only") from the net tree.

I added the following merge fix patch and can carry it as necessary:

From: Stephen Rothwell <[email-masked]>
Date: Fri, 19 Apr 2013 13:13:25 +1000
Subject: [PATCH] batman-adv: merge fix for batadv_is_my_mac() API change

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 net/batman-adv/network-coding.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/net/batman-adv/network-coding.c b/net/batman-adv/network-coding.c
index 6b9a544..382db5e 100644
--- a/net/batman-adv/network-coding.c
+++ b/net/batman-adv/network-coding.c
@@ -1484,7 +1484,7 @@ void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
 {
 	struct ethhdr *ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
-	if (batadv_is_my_mac(ethhdr->h_dest))
+	if (batadv_is_my_mac(bat_priv, ethhdr->h_dest))
 		return;
 
 	/* Set data pointer to MAC header to mimic packets from our tx path */
@@ -1496,6 +1496,7 @@ void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
 /**
  * batadv_nc_skb_decode_packet - decode given skb using the decode data stored
  *  in nc_packet
+ * @bat_priv: the bat priv with all the soft interface information
  * @skb: unicast skb to decode
  * @nc_packet: decode data needed to decode the skb
  *
@@ -1503,7 +1504,7 @@ void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
  * in case of an error.
  */
 static struct batadv_unicast_packet *
-batadv_nc_skb_decode_packet(struct sk_buff *skb,
+batadv_nc_skb_decode_packet(struct batadv_priv *bat_priv, struct sk_buff *skb,
 			    struct batadv_nc_packet *nc_packet)
 {
 	const int h_size = sizeof(struct batadv_unicast_packet);
@@ -1537,7 +1538,7 @@ batadv_nc_skb_decode_packet(struct sk_buff *skb,
 	/* Select the correct unicast header information based on the location
 	 * of our mac address in the coded_packet header
 	 */
-	if (batadv_is_my_mac(coded_packet_tmp.second_dest)) {
+	if (batadv_is_my_mac(bat_priv, coded_packet_tmp.second_dest)) {
 		/* If we are the second destination the packet was overheard,
 		 * so the Ethernet address must be copied to h_dest and
 		 * pkt_type changed from PACKET_OTHERHOST to PACKET_HOST
@@ -1608,7 +1609,7 @@ batadv_nc_find_decoding_packet(struct batadv_priv *bat_priv,
 
 	/* Select the correct packet id based on the location of our mac-addr */
 	dest = ethhdr->h_source;
-	if (!batadv_is_my_mac(coded->second_dest)) {
+	if (!batadv_is_my_mac(bat_priv, coded->second_dest)) {
 		source = coded->second_source;
 		packet_id = coded->second_crc;
 	} else {
@@ -1675,12 +1676,12 @@ static int batadv_nc_recv_coded_packet(struct sk_buff *skb,
 	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
 	/* Verify frame is destined for us */
-	if (!batadv_is_my_mac(ethhdr->h_dest) &&
-	    !batadv_is_my_mac(coded_packet->second_dest))
+	if (!batadv_is_my_mac(bat_priv, ethhdr->h_dest) &&
+	    !batadv_is_my_mac(bat_priv, coded_packet->second_dest))
 		return NET_RX_DROP;
 
 	/* Update stat counter */
-	if (batadv_is_my_mac(coded_packet->second_dest))
+	if (batadv_is_my_mac(bat_priv, coded_packet->second_dest))
 		batadv_inc_counter(bat_priv, BATADV_CNT_NC_SNIFFED);
 
 	nc_packet = batadv_nc_find_decoding_packet(bat_priv, ethhdr,
@@ -1698,7 +1699,7 @@ static int batadv_nc_recv_coded_packet(struct sk_buff *skb,
 		goto free_nc_packet;
 
 	/* Decode the packet */
-	unicast_packet = batadv_nc_skb_decode_packet(skb, nc_packet);
+	unicast_packet = batadv_nc_skb_decode_packet(bat_priv, skb, nc_packet);
 	if (!unicast_packet) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_NC_DECODE_FAILED);
 		goto free_nc_packet;
-- 
1.8.1

-- 
Cheers,
Stephen Rothwell                    [email-masked]