[3/3] batman-adv: retrieve B.A.T.M.A.N. V WiFi neighbor stats from real interface
Commit Message
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
---
net/batman-adv/bat_v_elp.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
Comments
On Dienstag, 12. Juli 2016 17:08:06 CEST Marek Lindner wrote:
> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
> ---
> net/batman-adv/bat_v_elp.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
Reviewed-by: Sven Eckelmann <sven@narfation.org>
Kind regards,
Sven
@@ -75,6 +75,7 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
{
struct batadv_hard_iface *hard_iface = neigh->if_incoming;
struct ethtool_link_ksettings link_settings;
+ struct net_device *real_netdev;
struct station_info sinfo;
u32 throughput;
int ret;
@@ -94,8 +95,13 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
/* unsupported WiFi driver version */
goto default_throughput;
- ret = cfg80211_get_station(hard_iface->net_dev,
- neigh->addr, &sinfo);
+ real_netdev = batadv_get_real_netdev(hard_iface->net_dev);
+ if (!real_netdev)
+ goto default_throughput;
+
+ ret = cfg80211_get_station(real_netdev, neigh->addr, &sinfo);
+
+ dev_put(real_netdev);
if (ret == -ENOENT) {
/* Node is not associated anymore! It would be
* possible to delete this neighbor. For now set