diff options
author | Marek Lindner <mareklindner@neomailbox.ch> | 2016-09-30 15:21:02 +0200 |
---|---|---|
committer | Simon Wunderlich <sw@simonwunderlich.de> | 2016-11-08 19:02:37 +0100 |
commit | f44a3ae9a2811cfd5321e0f72c02bc270410db64 (patch) | |
tree | ab5bbaa3a44d898e9ede17cc38dadc056c789a98 /net/batman-adv/hard-interface.c | |
parent | 88ffc7d0e2cdcd3d8ba603d51b81a65712899c6c (diff) | |
download | linux-f44a3ae9a2811cfd5321e0f72c02bc270410db64.tar.gz linux-f44a3ae9a2811cfd5321e0f72c02bc270410db64.tar.xz |
batman-adv: refactor wifi interface detection
The ELP protocol requires cfg80211 to auto-detect the WiFi througput
to a given neighbor. Use batadv_is_cfg80211_netdev() to determine
whether or not an interface is eligible.
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Diffstat (limited to 'net/batman-adv/hard-interface.c')
-rw-r--r-- | net/batman-adv/hard-interface.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c index fdbb47eebb71..c3fbc1b9c8e3 100644 --- a/net/batman-adv/hard-interface.c +++ b/net/batman-adv/hard-interface.c @@ -202,6 +202,26 @@ static bool batadv_is_valid_iface(const struct net_device *net_dev) } /** + * batadv_is_cfg80211_netdev - check if the given net_device struct is a + * cfg80211 wifi interface + * @net_device: the device to check + * + * Return: true if the net device is a cfg80211 wireless device, false + * otherwise. + */ +bool batadv_is_cfg80211_netdev(struct net_device *net_device) +{ + if (!net_device) + return false; + + /* cfg80211 drivers have to set ieee80211_ptr */ + if (net_device->ieee80211_ptr) + return true; + + return false; +} + +/** * batadv_is_wifi_netdev - check if the given net_device struct is a wifi * interface * @net_device: the device to check @@ -221,11 +241,7 @@ bool batadv_is_wifi_netdev(struct net_device *net_device) return true; #endif - /* cfg80211 drivers have to set ieee80211_ptr */ - if (net_device->ieee80211_ptr) - return true; - - return false; + return batadv_is_cfg80211_netdev(net_device); } /** |