b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Accept only filled wifi station info
Date: Fri,  9 Jun 2017 15:02:55 +0200	[thread overview]
Message-ID: <20170609130255.8577-2-sven@narfation.org> (raw)
In-Reply-To: <20170609130255.8577-1-sven@narfation.org>

The wifi driver can decide to not provide parts of the station info. For
example, the expected throughput of the station can be omitted when the
used rate control doesn't provide this kind of information.

The B.A.T.M.A.N. V implementation must therefore check the filled bitfield
before it tries to access the expected_throughput of the returned
station_info.

Reported-by: Alvaro Antelo <alvaro.antelo@gmail.com>
Fixes: 5c3245172c01 ("batman-adv: ELP - compute the metric based on the estimated throughput")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 compat-include/net/cfg80211.h | 2 ++
 net/batman-adv/bat_v_elp.c    | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/compat-include/net/cfg80211.h b/compat-include/net/cfg80211.h
index 6e0eca3c..f65fa756 100644
--- a/compat-include/net/cfg80211.h
+++ b/compat-include/net/cfg80211.h
@@ -20,6 +20,8 @@ static inline int cfg80211_get_station(struct net_device *dev,
  */
 #define expected_throughput filled
 
+#define STATION_INFO_EXPECTED_THROUGHPUT    BIT(28)
+
 #endif /* < KERNEL_VERSION(3, 16, 0) */
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
index 96e73337..16552568 100644
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -111,6 +111,8 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
 		}
 		if (ret)
 			goto default_throughput;
+		if (!(sinfo.filled & STATION_INFO_EXPECTED_THROUGHPUT))
+			goto default_throughput;
 
 		return sinfo.expected_throughput / 100;
 	}
-- 
2.11.0


  reply	other threads:[~2017-06-09 13:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-09 13:02 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: Use default throughput value on cfg80211 error Sven Eckelmann
2017-06-09 13:02 ` Sven Eckelmann [this message]
2017-06-09 14:06   ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: Accept only filled wifi station info Sven Eckelmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170609130255.8577-2-sven@narfation.org \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).