Commit 5952b020 authored by David S. Miller's avatar David S. Miller

Merge tag 'batadv-next-for-davem-20170613' of git://git.open-mesh.org/linux-merge

Simon Wunderlich says:

====================
This feature/cleanup patchset includes the following patches:

 - bump version strings, by Simon Wunderlich

 - decrease maximum fragment size, by Matthias Schiffer

 - Clean up seqfile writing, by Markus Elfring (2 patches)

 - use __func__ in debug messages, by Sven Eckelmann

 - Mark tpmeter initializers with __init, by Antonio Quartulli

 - ignore loop detection MAC addresses, by Simon Wunderlich

 - clean up some return handling, by Simon Wunderlich

 - improve ELP throughput value handling for WiFi neighbors
   in BATMAN V/ELP, by Sven Eckelmann (2 patches)
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 5514174f d6289088
...@@ -1022,7 +1022,8 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv, ...@@ -1022,7 +1022,8 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
u8 tq_avg; u8 tq_avg;
batadv_dbg(BATADV_DBG_BATMAN, bat_priv, batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
"update_originator(): Searching and updating originator entry of received packet\n"); "%s(): Searching and updating originator entry of received packet\n",
__func__);
rcu_read_lock(); rcu_read_lock();
hlist_for_each_entry_rcu(tmp_neigh_node, hlist_for_each_entry_rcu(tmp_neigh_node,
...@@ -1944,7 +1945,7 @@ static void batadv_iv_ogm_orig_print(struct batadv_priv *bat_priv, ...@@ -1944,7 +1945,7 @@ static void batadv_iv_ogm_orig_print(struct batadv_priv *bat_priv,
batadv_iv_ogm_orig_print_neigh(orig_node, if_outgoing, batadv_iv_ogm_orig_print_neigh(orig_node, if_outgoing,
seq); seq);
seq_puts(seq, "\n"); seq_putc(seq, '\n');
batman_count++; batman_count++;
next: next:
......
...@@ -400,7 +400,7 @@ static void batadv_v_orig_print(struct batadv_priv *bat_priv, ...@@ -400,7 +400,7 @@ static void batadv_v_orig_print(struct batadv_priv *bat_priv,
neigh_node->if_incoming->net_dev->name); neigh_node->if_incoming->net_dev->name);
batadv_v_orig_print_neigh(orig_node, if_outgoing, seq); batadv_v_orig_print_neigh(orig_node, if_outgoing, seq);
seq_puts(seq, "\n"); seq_putc(seq, '\n');
batman_count++; batman_count++;
next: next:
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "main.h" #include "main.h"
#include <linux/atomic.h> #include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/byteorder/generic.h> #include <linux/byteorder/generic.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
...@@ -29,6 +30,7 @@ ...@@ -29,6 +30,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/kref.h> #include <linux/kref.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/nl80211.h>
#include <linux/random.h> #include <linux/random.h>
#include <linux/rculist.h> #include <linux/rculist.h>
#include <linux/rcupdate.h> #include <linux/rcupdate.h>
...@@ -109,7 +111,11 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh) ...@@ -109,7 +111,11 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
*/ */
return 0; return 0;
} }
if (!ret) if (ret)
goto default_throughput;
if (!(sinfo.filled & BIT(NL80211_STA_INFO_EXPECTED_THROUGHPUT)))
goto default_throughput;
return sinfo.expected_throughput / 100; return sinfo.expected_throughput / 100;
} }
......
...@@ -394,7 +394,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac, ...@@ -394,7 +394,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
*/ */
ether_addr_copy(ethhdr->h_source, mac); ether_addr_copy(ethhdr->h_source, mac);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_send_claim(): CLAIM %pM on vid %d\n", mac, "%s(): CLAIM %pM on vid %d\n", __func__, mac,
batadv_print_vid(vid)); batadv_print_vid(vid));
break; break;
case BATADV_CLAIM_TYPE_UNCLAIM: case BATADV_CLAIM_TYPE_UNCLAIM:
...@@ -403,7 +403,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac, ...@@ -403,7 +403,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
*/ */
ether_addr_copy(hw_src, mac); ether_addr_copy(hw_src, mac);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_send_claim(): UNCLAIM %pM on vid %d\n", mac, "%s(): UNCLAIM %pM on vid %d\n", __func__, mac,
batadv_print_vid(vid)); batadv_print_vid(vid));
break; break;
case BATADV_CLAIM_TYPE_ANNOUNCE: case BATADV_CLAIM_TYPE_ANNOUNCE:
...@@ -412,7 +412,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac, ...@@ -412,7 +412,7 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
*/ */
ether_addr_copy(hw_src, mac); ether_addr_copy(hw_src, mac);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_send_claim(): ANNOUNCE of %pM on vid %d\n", "%s(): ANNOUNCE of %pM on vid %d\n", __func__,
ethhdr->h_source, batadv_print_vid(vid)); ethhdr->h_source, batadv_print_vid(vid));
break; break;
case BATADV_CLAIM_TYPE_REQUEST: case BATADV_CLAIM_TYPE_REQUEST:
...@@ -423,15 +423,15 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac, ...@@ -423,15 +423,15 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
ether_addr_copy(hw_src, mac); ether_addr_copy(hw_src, mac);
ether_addr_copy(ethhdr->h_dest, mac); ether_addr_copy(ethhdr->h_dest, mac);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_send_claim(): REQUEST of %pM to %pM on vid %d\n", "%s(): REQUEST of %pM to %pM on vid %d\n", __func__,
ethhdr->h_source, ethhdr->h_dest, ethhdr->h_source, ethhdr->h_dest,
batadv_print_vid(vid)); batadv_print_vid(vid));
break; break;
case BATADV_CLAIM_TYPE_LOOPDETECT: case BATADV_CLAIM_TYPE_LOOPDETECT:
ether_addr_copy(ethhdr->h_source, mac); ether_addr_copy(ethhdr->h_source, mac);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_send_claim(): LOOPDETECT of %pM to %pM on vid %d\n", "%s(): LOOPDETECT of %pM to %pM on vid %d\n",
ethhdr->h_source, ethhdr->h_dest, __func__, ethhdr->h_source, ethhdr->h_dest,
batadv_print_vid(vid)); batadv_print_vid(vid));
break; break;
...@@ -509,7 +509,7 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, u8 *orig, ...@@ -509,7 +509,7 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, u8 *orig,
return entry; return entry;
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_get_backbone_gw(): not found (%pM, %d), creating new entry\n", "%s(): not found (%pM, %d), creating new entry\n", __func__,
orig, batadv_print_vid(vid)); orig, batadv_print_vid(vid));
entry = kzalloc(sizeof(*entry), GFP_ATOMIC); entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
...@@ -605,7 +605,8 @@ static void batadv_bla_answer_request(struct batadv_priv *bat_priv, ...@@ -605,7 +605,8 @@ static void batadv_bla_answer_request(struct batadv_priv *bat_priv,
int i; int i;
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_answer_request(): received a claim request, send all of our own claims again\n"); "%s(): received a claim request, send all of our own claims again\n",
__func__);
backbone_gw = batadv_backbone_hash_find(bat_priv, backbone_gw = batadv_backbone_hash_find(bat_priv,
primary_if->net_dev->dev_addr, primary_if->net_dev->dev_addr,
...@@ -718,8 +719,8 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv, ...@@ -718,8 +719,8 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
kref_init(&claim->refcount); kref_init(&claim->refcount);
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_add_claim(): adding new entry %pM, vid %d to hash ...\n", "%s(): adding new entry %pM, vid %d to hash ...\n",
mac, batadv_print_vid(vid)); __func__, mac, batadv_print_vid(vid));
kref_get(&claim->refcount); kref_get(&claim->refcount);
hash_added = batadv_hash_add(bat_priv->bla.claim_hash, hash_added = batadv_hash_add(bat_priv->bla.claim_hash,
...@@ -739,8 +740,9 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv, ...@@ -739,8 +740,9 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
goto claim_free_ref; goto claim_free_ref;
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_add_claim(): changing ownership for %pM, vid %d to gw %pM\n", "%s(): changing ownership for %pM, vid %d to gw %pM\n",
mac, batadv_print_vid(vid), backbone_gw->orig); __func__, mac, batadv_print_vid(vid),
backbone_gw->orig);
remove_crc = true; remove_crc = true;
} }
...@@ -808,7 +810,7 @@ static void batadv_bla_del_claim(struct batadv_priv *bat_priv, ...@@ -808,7 +810,7 @@ static void batadv_bla_del_claim(struct batadv_priv *bat_priv,
if (!claim) if (!claim)
return; return;
batadv_dbg(BATADV_DBG_BLA, bat_priv, "bla_del_claim(): %pM, vid %d\n", batadv_dbg(BATADV_DBG_BLA, bat_priv, "%s(): %pM, vid %d\n", __func__,
mac, batadv_print_vid(vid)); mac, batadv_print_vid(vid));
batadv_hash_remove(bat_priv->bla.claim_hash, batadv_compare_claim, batadv_hash_remove(bat_priv->bla.claim_hash, batadv_compare_claim,
...@@ -848,8 +850,8 @@ static bool batadv_handle_announce(struct batadv_priv *bat_priv, u8 *an_addr, ...@@ -848,8 +850,8 @@ static bool batadv_handle_announce(struct batadv_priv *bat_priv, u8 *an_addr,
crc = ntohs(*((__be16 *)(&an_addr[4]))); crc = ntohs(*((__be16 *)(&an_addr[4])));
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"handle_announce(): ANNOUNCE vid %d (sent by %pM)... CRC = %#.4x\n", "%s(): ANNOUNCE vid %d (sent by %pM)... CRC = %#.4x\n",
batadv_print_vid(vid), backbone_gw->orig, crc); __func__, batadv_print_vid(vid), backbone_gw->orig, crc);
spin_lock_bh(&backbone_gw->crc_lock); spin_lock_bh(&backbone_gw->crc_lock);
backbone_crc = backbone_gw->crc; backbone_crc = backbone_gw->crc;
...@@ -857,8 +859,8 @@ static bool batadv_handle_announce(struct batadv_priv *bat_priv, u8 *an_addr, ...@@ -857,8 +859,8 @@ static bool batadv_handle_announce(struct batadv_priv *bat_priv, u8 *an_addr,
if (backbone_crc != crc) { if (backbone_crc != crc) {
batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv,
"handle_announce(): CRC FAILED for %pM/%d (my = %#.4x, sent = %#.4x)\n", "%s(): CRC FAILED for %pM/%d (my = %#.4x, sent = %#.4x)\n",
backbone_gw->orig, __func__, backbone_gw->orig,
batadv_print_vid(backbone_gw->vid), batadv_print_vid(backbone_gw->vid),
backbone_crc, crc); backbone_crc, crc);
...@@ -903,8 +905,8 @@ static bool batadv_handle_request(struct batadv_priv *bat_priv, ...@@ -903,8 +905,8 @@ static bool batadv_handle_request(struct batadv_priv *bat_priv,
return true; return true;
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"handle_request(): REQUEST vid %d (sent by %pM)...\n", "%s(): REQUEST vid %d (sent by %pM)...\n",
batadv_print_vid(vid), ethhdr->h_source); __func__, batadv_print_vid(vid), ethhdr->h_source);
batadv_bla_answer_request(bat_priv, primary_if, vid); batadv_bla_answer_request(bat_priv, primary_if, vid);
return true; return true;
...@@ -940,7 +942,7 @@ static bool batadv_handle_unclaim(struct batadv_priv *bat_priv, ...@@ -940,7 +942,7 @@ static bool batadv_handle_unclaim(struct batadv_priv *bat_priv,
/* this must be an UNCLAIM frame */ /* this must be an UNCLAIM frame */
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"handle_unclaim(): UNCLAIM %pM on vid %d (sent by %pM)...\n", "%s(): UNCLAIM %pM on vid %d (sent by %pM)...\n", __func__,
claim_addr, batadv_print_vid(vid), backbone_gw->orig); claim_addr, batadv_print_vid(vid), backbone_gw->orig);
batadv_bla_del_claim(bat_priv, claim_addr, vid); batadv_bla_del_claim(bat_priv, claim_addr, vid);
...@@ -1160,9 +1162,9 @@ static bool batadv_bla_process_claim(struct batadv_priv *bat_priv, ...@@ -1160,9 +1162,9 @@ static bool batadv_bla_process_claim(struct batadv_priv *bat_priv,
ethhdr); ethhdr);
if (ret == 1) if (ret == 1)
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_process_claim(): received a claim frame from another group. From: %pM on vid %d ...(hw_src %pM, hw_dst %pM)\n", "%s(): received a claim frame from another group. From: %pM on vid %d ...(hw_src %pM, hw_dst %pM)\n",
ethhdr->h_source, batadv_print_vid(vid), hw_src, __func__, ethhdr->h_source, batadv_print_vid(vid),
hw_dst); hw_src, hw_dst);
if (ret < 2) if (ret < 2)
return !!ret; return !!ret;
...@@ -1196,8 +1198,9 @@ static bool batadv_bla_process_claim(struct batadv_priv *bat_priv, ...@@ -1196,8 +1198,9 @@ static bool batadv_bla_process_claim(struct batadv_priv *bat_priv,
} }
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_process_claim(): ERROR - this looks like a claim frame, but is useless. eth src %pM on vid %d ...(hw_src %pM, hw_dst %pM)\n", "%s(): ERROR - this looks like a claim frame, but is useless. eth src %pM on vid %d ...(hw_src %pM, hw_dst %pM)\n",
ethhdr->h_source, batadv_print_vid(vid), hw_src, hw_dst); __func__, ethhdr->h_source, batadv_print_vid(vid), hw_src,
hw_dst);
return true; return true;
} }
...@@ -1237,8 +1240,8 @@ static void batadv_bla_purge_backbone_gw(struct batadv_priv *bat_priv, int now) ...@@ -1237,8 +1240,8 @@ static void batadv_bla_purge_backbone_gw(struct batadv_priv *bat_priv, int now)
continue; continue;
batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv, batadv_dbg(BATADV_DBG_BLA, backbone_gw->bat_priv,
"bla_purge_backbone_gw(): backbone gw %pM timed out\n", "%s(): backbone gw %pM timed out\n",
backbone_gw->orig); __func__, backbone_gw->orig);
purge_now: purge_now:
/* don't wait for the pending request anymore */ /* don't wait for the pending request anymore */
...@@ -1295,11 +1298,11 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv, ...@@ -1295,11 +1298,11 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
goto skip; goto skip;
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_purge_claims(): timed out.\n"); "%s(): timed out.\n", __func__);
purge_now: purge_now:
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_purge_claims(): %pM, vid %d\n", "%s(): %pM, vid %d\n", __func__,
claim->addr, claim->vid); claim->addr, claim->vid);
batadv_handle_unclaim(bat_priv, primary_if, batadv_handle_unclaim(bat_priv, primary_if,
...@@ -1851,8 +1854,8 @@ bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, ...@@ -1851,8 +1854,8 @@ bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
*/ */
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"bla_rx(): Unclaimed MAC %pM found. Claim it. Local: %s\n", "%s(): Unclaimed MAC %pM found. Claim it. Local: %s\n",
ethhdr->h_source, __func__, ethhdr->h_source,
batadv_is_my_client(bat_priv, batadv_is_my_client(bat_priv,
ethhdr->h_source, vid) ? ethhdr->h_source, vid) ?
"yes" : "no"); "yes" : "no");
...@@ -1978,15 +1981,15 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, ...@@ -1978,15 +1981,15 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
* older than 100 ms to make sure we really * older than 100 ms to make sure we really
* have a roaming client here. * have a roaming client here.
*/ */
batadv_dbg(BATADV_DBG_BLA, bat_priv, "bla_tx(): Roaming client %pM detected. Unclaim it.\n", batadv_dbg(BATADV_DBG_BLA, bat_priv, "%s(): Roaming client %pM detected. Unclaim it.\n",
ethhdr->h_source); __func__, ethhdr->h_source);
batadv_handle_unclaim(bat_priv, primary_if, batadv_handle_unclaim(bat_priv, primary_if,
primary_if->net_dev->dev_addr, primary_if->net_dev->dev_addr,
ethhdr->h_source, vid); ethhdr->h_source, vid);
goto allow; goto allow;
} else { } else {
batadv_dbg(BATADV_DBG_BLA, bat_priv, "bla_tx(): Race for claim %pM detected. Drop packet.\n", batadv_dbg(BATADV_DBG_BLA, bat_priv, "%s(): Race for claim %pM detected. Drop packet.\n",
ethhdr->h_source); __func__, ethhdr->h_source);
goto handled; goto handled;
} }
} }
......
...@@ -601,7 +601,7 @@ batadv_dat_select_candidates(struct batadv_priv *bat_priv, __be32 ip_dst, ...@@ -601,7 +601,7 @@ batadv_dat_select_candidates(struct batadv_priv *bat_priv, __be32 ip_dst,
BATADV_DAT_ADDR_MAX); BATADV_DAT_ADDR_MAX);
batadv_dbg(BATADV_DBG_DAT, bat_priv, batadv_dbg(BATADV_DBG_DAT, bat_priv,
"dat_select_candidates(): IP=%pI4 hash(IP)=%u\n", &ip_dst, "%s(): IP=%pI4 hash(IP)=%u\n", __func__, &ip_dst,
ip_key); ip_key);
for (select = 0; select < BATADV_DAT_CANDIDATES_NUM; select++) for (select = 0; select < BATADV_DAT_CANDIDATES_NUM; select++)
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#define BATADV_DRIVER_DEVICE "batman-adv" #define BATADV_DRIVER_DEVICE "batman-adv"
#ifndef BATADV_SOURCE_VERSION #ifndef BATADV_SOURCE_VERSION
#define BATADV_SOURCE_VERSION "2017.1" #define BATADV_SOURCE_VERSION "2017.2"
#endif #endif
/* B.A.T.M.A.N. parameters */ /* B.A.T.M.A.N. parameters */
...@@ -168,7 +168,7 @@ enum batadv_uev_type { ...@@ -168,7 +168,7 @@ enum batadv_uev_type {
/* Maximum number of fragments for one packet */ /* Maximum number of fragments for one packet */
#define BATADV_FRAG_MAX_FRAGMENTS 16 #define BATADV_FRAG_MAX_FRAGMENTS 16
/* Maxumim size of each fragment */ /* Maxumim size of each fragment */
#define BATADV_FRAG_MAX_FRAG_SIZE 1400 #define BATADV_FRAG_MAX_FRAG_SIZE 1280
/* Time to keep fragments while waiting for rest of the fragments */ /* Time to keep fragments while waiting for rest of the fragments */
#define BATADV_FRAG_TIMEOUT 10000 #define BATADV_FRAG_TIMEOUT 10000
......
...@@ -1935,9 +1935,7 @@ int batadv_nc_nodes_seq_print_text(struct seq_file *seq, void *offset) ...@@ -1935,9 +1935,7 @@ int batadv_nc_nodes_seq_print_text(struct seq_file *seq, void *offset)
list) list)
seq_printf(seq, "%pM ", seq_printf(seq, "%pM ",
nc_node->addr); nc_node->addr);
seq_puts(seq, "\n"); seq_puts(seq, "\n Outgoing: ");
seq_puts(seq, " Outgoing: ");
/* For out_nc_node to this orig_node */ /* For out_nc_node to this orig_node */
list_for_each_entry_rcu(nc_node, list_for_each_entry_rcu(nc_node,
&orig_node->out_coding_list, &orig_node->out_coding_list,
......
...@@ -985,8 +985,8 @@ int batadv_recv_unicast_packet(struct sk_buff *skb, ...@@ -985,8 +985,8 @@ int batadv_recv_unicast_packet(struct sk_buff *skb,
batadv_orig_node_put(orig_node_gw); batadv_orig_node_put(orig_node_gw);
if (is_gw) { if (is_gw) {
batadv_dbg(BATADV_DBG_BLA, bat_priv, batadv_dbg(BATADV_DBG_BLA, bat_priv,
"recv_unicast_packet(): Dropped unicast pkt received from another backbone gw %pM.\n", "%s(): Dropped unicast pkt received from another backbone gw %pM.\n",
orig_addr_gw); __func__, orig_addr_gw);
return NET_RX_DROP; return NET_RX_DROP;
} }
} }
......
...@@ -971,11 +971,11 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv, ...@@ -971,11 +971,11 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
if (hard_iface) if (hard_iface)
batadv_dbg(BATADV_DBG_BATMAN, bat_priv, batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
"purge_outstanding_packets(): %s\n", "%s(): %s\n",
hard_iface->net_dev->name); __func__, hard_iface->net_dev->name);
else else
batadv_dbg(BATADV_DBG_BATMAN, bat_priv, batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
"purge_outstanding_packets()\n"); "%s()\n", __func__);
/* claim bcast list for free() */ /* claim bcast list for free() */
spin_lock_bh(&bat_priv->forw_bcast_list_lock); spin_lock_bh(&bat_priv->forw_bcast_list_lock);
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/if_ether.h> #include <linux/if_ether.h>
#include <linux/init.h>
#include <linux/jiffies.h> #include <linux/jiffies.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/kref.h> #include <linux/kref.h>
...@@ -1497,7 +1498,7 @@ void batadv_tp_meter_recv(struct batadv_priv *bat_priv, struct sk_buff *skb) ...@@ -1497,7 +1498,7 @@ void batadv_tp_meter_recv(struct batadv_priv *bat_priv, struct sk_buff *skb)
/** /**
* batadv_tp_meter_init - initialize global tp_meter structures * batadv_tp_meter_init - initialize global tp_meter structures
*/ */
void batadv_tp_meter_init(void) void __init batadv_tp_meter_init(void)
{ {
get_random_bytes(batadv_tp_prerandom, sizeof(batadv_tp_prerandom)); get_random_bytes(batadv_tp_prerandom, sizeof(batadv_tp_prerandom));
} }
...@@ -2488,18 +2488,16 @@ static bool ...@@ -2488,18 +2488,16 @@ static bool
_batadv_is_ap_isolated(struct batadv_tt_local_entry *tt_local_entry, _batadv_is_ap_isolated(struct batadv_tt_local_entry *tt_local_entry,
struct batadv_tt_global_entry *tt_global_entry) struct batadv_tt_global_entry *tt_global_entry)
{ {
bool ret = false;
if (tt_local_entry->common.flags & BATADV_TT_CLIENT_WIFI && if (tt_local_entry->common.flags & BATADV_TT_CLIENT_WIFI &&
tt_global_entry->common.flags & BATADV_TT_CLIENT_WIFI) tt_global_entry->common.flags & BATADV_TT_CLIENT_WIFI)
ret = true; return true;
/* check if the two clients are marked as isolated */ /* check if the two clients are marked as isolated */
if (tt_local_entry->common.flags & BATADV_TT_CLIENT_ISOLA && if (tt_local_entry->common.flags & BATADV_TT_CLIENT_ISOLA &&
tt_global_entry->common.flags & BATADV_TT_CLIENT_ISOLA) tt_global_entry->common.flags & BATADV_TT_CLIENT_ISOLA)
ret = true; return true;
return ret; return false;
} }
/** /**
...@@ -4010,19 +4008,22 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv, ...@@ -4010,19 +4008,22 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
const unsigned char *addr, const unsigned char *addr,
unsigned short vid) unsigned short vid)
{ {
bool ret = false; /* ignore loop detect macs, they are not supposed to be in the tt local
* data as well.
*/
if (batadv_bla_is_loopdetect_mac(addr))
return false;
if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid, if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
BATADV_TT_CLIENT_TEMP, BATADV_TT_CLIENT_TEMP,
atomic_read(&orig_node->last_ttvn))) atomic_read(&orig_node->last_ttvn)))
goto out; return false;
batadv_dbg(BATADV_DBG_TT, bat_priv, batadv_dbg(BATADV_DBG_TT, bat_priv,
"Added temporary global client (addr: %pM, vid: %d, orig: %pM)\n", "Added temporary global client (addr: %pM, vid: %d, orig: %pM)\n",
addr, batadv_print_vid(vid), orig_node->orig); addr, batadv_print_vid(vid), orig_node->orig);
ret = true;
out: return true;
return ret;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment