* [PATCH 0/8] wireless: remove WDS mode
@ 2020-11-09 9:57 Johannes Berg
2020-11-09 9:57 ` [PATCH 1/8] wireless: remove CONFIG_WIRELESS_WDS Johannes Berg
` (8 more replies)
0 siblings, 9 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless
We use 4-addr AP/client instead. Remove WDS code that was
basically not possible to enable anyway.
johannes
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/8] wireless: remove CONFIG_WIRELESS_WDS
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 2/8] ath9k: remove WDS code Johannes Berg
` (7 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
WDS has long been superseded by 4-addr AP/client and lacks such
fundamental features like encryption, capability negotiation,
and similar. As such, it was basically always unusable as is.
Back in 2016, in commit 8f20542386c5 ("wireless: deprecate WDS
and disable by default") I disabled it and made the Kconfig option
only available under CONFIG_EXPERT to turn it back on. Since then,
nobody has complained about that, and given the severe limitations
with the code, it's unlikely anyone would have a reason to.
Remove the Kconfig option now, so we can clean up the associated
code in follow-up patches.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/Kconfig | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index 170a64e67709..7add2002ff4c 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -18,19 +18,6 @@ menuconfig WLAN
if WLAN
-config WIRELESS_WDS
- bool "mac80211-based legacy WDS support" if EXPERT
- help
- This option enables the deprecated WDS support, the newer
- mac80211-based 4-addr AP/client support supersedes it with
- a much better feature set (HT, VHT, ...)
-
- We plan to remove this option and code, so if you find
- that you have to enable it, please let us know on the
- linux-wireless@vger.kernel.org mailing list, so we can
- help you migrate to 4-addr AP/client (or, if it's really
- necessary, give up on our plan of removing it).
-
source "drivers/net/wireless/admtek/Kconfig"
source "drivers/net/wireless/ath/Kconfig"
source "drivers/net/wireless/atmel/Kconfig"
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/8] ath9k: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
2020-11-09 9:57 ` [PATCH 1/8] wireless: remove CONFIG_WIRELESS_WDS Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 3/8] carl9170: " Johannes Berg
` (6 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The ability to reach this code was hidden behind
CONFIG_WIRELESS_WDS, which was just removed. Clean
up the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 1 -
drivers/net/wireless/ath/ath9k/init.c | 19 -------------------
drivers/net/wireless/ath/ath9k/main.c | 5 -----
3 files changed, 25 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index e06b74a54a69..13b4f5f50f8a 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -661,7 +661,6 @@ struct ath9k_vif_iter_data {
int naps; /* number of AP vifs */
int nmeshes; /* number of mesh vifs */
int nstations; /* number of station vifs */
- int nwds; /* number of WDS vifs */
int nadhocs; /* number of adhoc vifs */
int nocbs; /* number of OCB vifs */
int nbcnvifs; /* number of beaconing vifs */
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 690fe3a1b516..42a208787f5a 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -832,12 +832,6 @@ static const struct ieee80211_iface_limit if_limits[] = {
BIT(NL80211_IFTYPE_P2P_GO) },
};
-#ifdef CONFIG_WIRELESS_WDS
-static const struct ieee80211_iface_limit wds_limits[] = {
- { .max = 2048, .types = BIT(NL80211_IFTYPE_WDS) },
-};
-#endif
-
#ifdef CONFIG_ATH9K_CHANNEL_CONTEXT
static const struct ieee80211_iface_limit if_limits_multi[] = {
@@ -874,15 +868,6 @@ static const struct ieee80211_iface_combination if_comb[] = {
BIT(NL80211_CHAN_WIDTH_40),
#endif
},
-#ifdef CONFIG_WIRELESS_WDS
- {
- .limits = wds_limits,
- .n_limits = ARRAY_SIZE(wds_limits),
- .max_interfaces = 2048,
- .num_different_channels = 1,
- .beacon_int_infra_match = true,
- },
-#endif
};
#ifdef CONFIG_ATH9K_CHANNEL_CONTEXT
@@ -897,7 +882,6 @@ static void ath9k_set_mcc_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
ieee80211_hw_set(hw, QUEUE_CONTROL);
hw->queues = ATH9K_NUM_TX_QUEUES;
hw->offchannel_tx_hw_queue = hw->queues - 1;
- hw->wiphy->interface_modes &= ~ BIT(NL80211_IFTYPE_WDS);
hw->wiphy->iface_combinations = if_comb_multi;
hw->wiphy->n_iface_combinations = ARRAY_SIZE(if_comb_multi);
hw->wiphy->max_scan_ssids = 255;
@@ -953,9 +937,6 @@ static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC) |
BIT(NL80211_IFTYPE_MESH_POINT) |
-#ifdef CONFIG_WIRELESS_WDS
- BIT(NL80211_IFTYPE_WDS) |
-#endif
BIT(NL80211_IFTYPE_OCB);
if (ath9k_is_chanctx_enabled())
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 8dbf68b94228..caebe3fd6869 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -973,9 +973,6 @@ static void ath9k_vif_iter(struct ath9k_vif_iter_data *iter_data,
if (vif->bss_conf.enable_beacon)
ath9k_vif_iter_set_beacon(iter_data, vif);
break;
- case NL80211_IFTYPE_WDS:
- iter_data->nwds++;
- break;
default:
break;
}
@@ -1136,8 +1133,6 @@ void ath9k_calculate_summary_state(struct ath_softc *sc,
ah->opmode = NL80211_IFTYPE_MESH_POINT;
else if (iter_data.nocbs)
ah->opmode = NL80211_IFTYPE_OCB;
- else if (iter_data.nwds)
- ah->opmode = NL80211_IFTYPE_AP;
else if (iter_data.nadhocs)
ah->opmode = NL80211_IFTYPE_ADHOC;
else
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/8] carl9170: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
2020-11-09 9:57 ` [PATCH 1/8] wireless: remove CONFIG_WIRELESS_WDS Johannes Berg
2020-11-09 9:57 ` [PATCH 2/8] ath9k: remove WDS code Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 4/8] b43: " Johannes Berg
` (5 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The ability to reach this code was hidden behind
CONFIG_WIRELESS_WDS, which was just removed. Clean
up the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/ath/carl9170/mac.c | 4 ----
drivers/net/wireless/ath/carl9170/main.c | 1 -
2 files changed, 5 deletions(-)
diff --git a/drivers/net/wireless/ath/carl9170/mac.c b/drivers/net/wireless/ath/carl9170/mac.c
index b2eeb9fd68d2..6cdbee5beb07 100644
--- a/drivers/net/wireless/ath/carl9170/mac.c
+++ b/drivers/net/wireless/ath/carl9170/mac.c
@@ -329,10 +329,6 @@ int carl9170_set_operating_mode(struct ar9170 *ar)
/* iwlagn 802.11n STA Workaround */
rx_ctrl |= AR9170_MAC_RX_CTRL_PASS_TO_HOST;
break;
- case NL80211_IFTYPE_WDS:
- cam_mode |= AR9170_MAC_CAM_AP_WDS;
- rx_ctrl |= AR9170_MAC_RX_CTRL_PASS_TO_HOST;
- break;
case NL80211_IFTYPE_STATION:
cam_mode |= AR9170_MAC_CAM_STA;
rx_ctrl |= AR9170_MAC_RX_CTRL_PASS_TO_HOST;
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index dbef9d8fc893..cca3b086aa70 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -646,7 +646,6 @@ static int carl9170_op_add_interface(struct ieee80211_hw *hw,
case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_AP:
if ((vif->type == NL80211_IFTYPE_STATION) ||
- (vif->type == NL80211_IFTYPE_WDS) ||
(vif->type == NL80211_IFTYPE_AP) ||
(vif->type == NL80211_IFTYPE_MESH_POINT))
break;
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/8] b43: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (2 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 3/8] carl9170: " Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 5/8] b43legacy: " Johannes Berg
` (4 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The ability to reach this code was hidden behind
CONFIG_WIRELESS_WDS, which was just removed. Clean
up the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/broadcom/b43/main.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireless/broadcom/b43/main.c
index f175dbaffc30..150a366e8f62 100644
--- a/drivers/net/wireless/broadcom/b43/main.c
+++ b/drivers/net/wireless/broadcom/b43/main.c
@@ -4961,12 +4961,11 @@ static int b43_op_add_interface(struct ieee80211_hw *hw,
struct b43_wldev *dev;
int err = -EOPNOTSUPP;
- /* TODO: allow WDS/AP devices to coexist */
+ /* TODO: allow AP devices to coexist */
if (vif->type != NL80211_IFTYPE_AP &&
vif->type != NL80211_IFTYPE_MESH_POINT &&
vif->type != NL80211_IFTYPE_STATION &&
- vif->type != NL80211_IFTYPE_WDS &&
vif->type != NL80211_IFTYPE_ADHOC)
return -EOPNOTSUPP;
@@ -5576,9 +5575,6 @@ static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev)
BIT(NL80211_IFTYPE_AP) |
BIT(NL80211_IFTYPE_MESH_POINT) |
BIT(NL80211_IFTYPE_STATION) |
-#ifdef CONFIG_WIRELESS_WDS
- BIT(NL80211_IFTYPE_WDS) |
-#endif
BIT(NL80211_IFTYPE_ADHOC);
hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 5/8] b43legacy: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (3 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 4/8] b43: " Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 6/8] rt2x00: " Johannes Berg
` (3 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The ability to reach this code was hidden behind
CONFIG_WIRELESS_WDS, which was just removed. Clean
up the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/broadcom/b43legacy/main.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c
index a27125b7922c..7692a2618c97 100644
--- a/drivers/net/wireless/broadcom/b43legacy/main.c
+++ b/drivers/net/wireless/broadcom/b43legacy/main.c
@@ -3381,11 +3381,10 @@ static int b43legacy_op_add_interface(struct ieee80211_hw *hw,
unsigned long flags;
int err = -EOPNOTSUPP;
- /* TODO: allow WDS/AP devices to coexist */
+ /* TODO: allow AP devices to coexist */
if (vif->type != NL80211_IFTYPE_AP &&
vif->type != NL80211_IFTYPE_STATION &&
- vif->type != NL80211_IFTYPE_WDS &&
vif->type != NL80211_IFTYPE_ADHOC)
return -EOPNOTSUPP;
@@ -3805,9 +3804,6 @@ static int b43legacy_wireless_init(struct ssb_device *dev)
hw->wiphy->interface_modes =
BIT(NL80211_IFTYPE_AP) |
BIT(NL80211_IFTYPE_STATION) |
-#ifdef CONFIG_WIRELESS_WDS
- BIT(NL80211_IFTYPE_WDS) |
-#endif
BIT(NL80211_IFTYPE_ADHOC);
hw->queues = 1; /* FIXME: hardware has more queues */
hw->max_rates = 2;
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 6/8] rt2x00: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (4 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 5/8] b43legacy: " Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 9:57 ` [PATCH 7/8] mac80211: remove WDS-related code Johannes Berg
` (2 subsequent siblings)
8 siblings, 0 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The ability to reach this code was hidden behind
CONFIG_WIRELESS_WDS, which was just removed. Clean
up the driver accordingly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/ralink/rt2x00/rt2x00config.c | 1 -
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 6 +-----
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 3 +--
3 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00config.c b/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
index 0ee1813e8453..6bafdd991171 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
@@ -32,7 +32,6 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_MESH_POINT:
- case NL80211_IFTYPE_WDS:
conf.sync = TSF_SYNC_AP_NONE;
break;
case NL80211_IFTYPE_STATION:
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
index b04f76551ca4..61a4f1ad31e2 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
@@ -194,8 +194,7 @@ static void rt2x00lib_beaconupdate_iter(void *data, u8 *mac,
if (vif->type != NL80211_IFTYPE_AP &&
vif->type != NL80211_IFTYPE_ADHOC &&
- vif->type != NL80211_IFTYPE_MESH_POINT &&
- vif->type != NL80211_IFTYPE_WDS)
+ vif->type != NL80211_IFTYPE_MESH_POINT)
return;
/*
@@ -1436,9 +1435,6 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
BIT(NL80211_IFTYPE_ADHOC) |
#ifdef CONFIG_MAC80211_MESH
BIT(NL80211_IFTYPE_MESH_POINT) |
-#endif
-#ifdef CONFIG_WIRELESS_WDS
- BIT(NL80211_IFTYPE_WDS) |
#endif
BIT(NL80211_IFTYPE_AP);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
index 2f68a31072ae..dea5babd30fe 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
@@ -408,8 +408,7 @@ static void rt2x00mac_set_tim_iter(void *data, u8 *mac,
if (vif->type != NL80211_IFTYPE_AP &&
vif->type != NL80211_IFTYPE_ADHOC &&
- vif->type != NL80211_IFTYPE_MESH_POINT &&
- vif->type != NL80211_IFTYPE_WDS)
+ vif->type != NL80211_IFTYPE_MESH_POINT)
return;
set_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags);
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 7/8] mac80211: remove WDS-related code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (5 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 6/8] rt2x00: " Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-10 4:58 ` kernel test robot
2020-11-11 11:23 ` kernel test robot
2020-11-09 9:57 ` [PATCH 8/8] cfg80211: remove WDS code Johannes Berg
2020-11-09 11:13 ` [PATCH 0/8] wireless: remove WDS mode Kalle Valo
8 siblings, 2 replies; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
Now that all the mac80211-based drivers have removed WDS code
and in particular the ability to advertise such devices, also
remove all the code related to WDS here.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/cfg.c | 11 --------
net/mac80211/chan.c | 3 +--
net/mac80211/debugfs_netdev.c | 11 --------
net/mac80211/ieee80211_i.h | 6 -----
net/mac80211/iface.c | 50 ++++-------------------------------
net/mac80211/main.c | 8 ------
net/mac80211/pm.c | 15 -----------
net/mac80211/rx.c | 5 ----
net/mac80211/tx.c | 26 ++----------------
net/mac80211/util.c | 2 +-
net/mac80211/wme.c | 3 ---
11 files changed, 9 insertions(+), 131 deletions(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 7276e66ae435..454432ced0c9 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2708,16 +2708,6 @@ static int ieee80211_get_tx_power(struct wiphy *wiphy,
return 0;
}
-static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
- const u8 *addr)
-{
- struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
-
- memcpy(&sdata->u.wds.remote_addr, addr, ETH_ALEN);
-
- return 0;
-}
-
static void ieee80211_rfkill_poll(struct wiphy *wiphy)
{
struct ieee80211_local *local = wiphy_priv(wiphy);
@@ -4138,7 +4128,6 @@ const struct cfg80211_ops mac80211_config_ops = {
.set_wiphy_params = ieee80211_set_wiphy_params,
.set_tx_power = ieee80211_set_tx_power,
.get_tx_power = ieee80211_get_tx_power,
- .set_wds_peer = ieee80211_set_wds_peer,
.rfkill_poll = ieee80211_rfkill_poll,
CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
CFG80211_TESTMODE_DUMP(ieee80211_testmode_dump)
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index 8f48aff74c7b..b6c80a45b9f5 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -275,11 +275,11 @@ ieee80211_get_chanctx_max_required_bw(struct ieee80211_local *local,
case NL80211_IFTYPE_NAN:
continue;
case NL80211_IFTYPE_ADHOC:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_OCB:
width = vif->bss_conf.chandef.width;
break;
+ case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_UNSPECIFIED:
case NUM_NL80211_IFTYPES:
case NL80211_IFTYPE_MONITOR:
@@ -743,7 +743,6 @@ void ieee80211_recalc_smps_chanctx(struct ieee80211_local *local,
continue;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_ADHOC:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_OCB:
break;
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index fe8a7a87e513..9fc8ce214322 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -574,9 +574,6 @@ static ssize_t ieee80211_if_parse_tsf(
IEEE80211_IF_FILE_RW(tsf);
-/* WDS attributes */
-IEEE80211_IF_FILE(peer, u.wds.remote_addr, MAC);
-
#ifdef CONFIG_MAC80211_MESH
IEEE80211_IF_FILE(estab_plinks, u.mesh.estab_plinks, ATOMIC);
@@ -701,11 +698,6 @@ static void add_ibss_files(struct ieee80211_sub_if_data *sdata)
DEBUGFS_ADD_MODE(tsf, 0600);
}
-static void add_wds_files(struct ieee80211_sub_if_data *sdata)
-{
- DEBUGFS_ADD(peer);
-}
-
#ifdef CONFIG_MAC80211_MESH
static void add_mesh_files(struct ieee80211_sub_if_data *sdata)
@@ -805,9 +797,6 @@ static void add_files(struct ieee80211_sub_if_data *sdata)
case NL80211_IFTYPE_AP_VLAN:
add_vlan_files(sdata);
break;
- case NL80211_IFTYPE_WDS:
- add_wds_files(sdata);
- break;
default:
break;
}
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 2a21226fb518..bb56fdd0db81 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -311,11 +311,6 @@ struct ieee80211_if_ap {
bool multicast_to_unicast;
};
-struct ieee80211_if_wds {
- struct sta_info *sta;
- u8 remote_addr[ETH_ALEN];
-};
-
struct ieee80211_if_vlan {
struct list_head list; /* write-protected with RTNL and local->mtx */
@@ -985,7 +980,6 @@ struct ieee80211_sub_if_data {
union {
struct ieee80211_if_ap ap;
- struct ieee80211_if_wds wds;
struct ieee80211_if_vlan vlan;
struct ieee80211_if_managed mgd;
struct ieee80211_if_ibss ibss;
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 56a1bcea2c1c..51ef7a7ea93c 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -230,10 +230,6 @@ static inline int identical_mac_addr_allowed(int type1, int type2)
type2 == NL80211_IFTYPE_MONITOR ||
type1 == NL80211_IFTYPE_P2P_DEVICE ||
type2 == NL80211_IFTYPE_P2P_DEVICE ||
- (type1 == NL80211_IFTYPE_AP && type2 == NL80211_IFTYPE_WDS) ||
- (type1 == NL80211_IFTYPE_WDS &&
- (type2 == NL80211_IFTYPE_WDS ||
- type2 == NL80211_IFTYPE_AP)) ||
(type1 == NL80211_IFTYPE_AP && type2 == NL80211_IFTYPE_AP_VLAN) ||
(type1 == NL80211_IFTYPE_AP_VLAN &&
(type2 == NL80211_IFTYPE_AP ||
@@ -417,15 +413,12 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
* (because if we remove a STA after ops->remove_interface()
* the driver will have removed the vif info already!)
*
- * In WDS mode a station must exist here and be flushed, for
- * AP_VLANs stations may exist since there's nothing else that
+ * For AP_VLANs stations may exist since there's nothing else that
* would have removed them, but in other modes there shouldn't
* be any stations.
*/
flushed = sta_info_flush(sdata);
- WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
- ((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) ||
- (sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1)));
+ WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP_VLAN && flushed > 0);
/* don't count this interface for allmulti while it is down */
if (sdata->flags & IEEE80211_SDATA_ALLMULTI)
@@ -552,8 +545,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
* When we get here, the interface is marked down.
* Free the remaining keys, if there are any
* (which can happen in AP mode if userspace sets
- * keys before the interface is operating, and maybe
- * also in WDS mode)
+ * keys before the interface is operating)
*
* Force the key freeing to always synchronize_net()
* to wait for the RX path in case it is using this
@@ -1026,10 +1018,6 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
u32 hw_reconf_flags = 0;
switch (sdata->vif.type) {
- case NL80211_IFTYPE_WDS:
- if (!is_valid_ether_addr(sdata->u.wds.remote_addr))
- return -ENOLINK;
- break;
case NL80211_IFTYPE_AP_VLAN: {
struct ieee80211_sub_if_data *master;
@@ -1078,6 +1066,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
case NUM_NL80211_IFTYPES:
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_P2P_GO:
+ case NL80211_IFTYPE_WDS:
/* cannot happen */
WARN_ON(1);
break;
@@ -1196,7 +1185,6 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
case NL80211_IFTYPE_OCB:
netif_carrier_off(dev);
break;
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_NAN:
break;
@@ -1218,28 +1206,6 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
set_bit(SDATA_STATE_RUNNING, &sdata->state);
switch (sdata->vif.type) {
- case NL80211_IFTYPE_WDS:
- /* Create STA entry for the WDS peer */
- sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr,
- GFP_KERNEL);
- if (!sta) {
- res = -ENOMEM;
- goto err_del_interface;
- }
-
- sta_info_pre_move_state(sta, IEEE80211_STA_AUTH);
- sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC);
- sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED);
-
- res = sta_info_insert(sta);
- if (res) {
- /* STA has been freed */
- goto err_del_interface;
- }
-
- rate_control_rate_init(sta);
- netif_carrier_on(dev);
- break;
case NL80211_IFTYPE_P2P_DEVICE:
rcu_assign_pointer(local->p2p_sdata, sdata);
break;
@@ -1576,9 +1542,6 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
sdata->u.mntr.flags = MONITOR_FLAG_CONTROL |
MONITOR_FLAG_OTHER_BSS;
break;
- case NL80211_IFTYPE_WDS:
- sdata->vif.bss_conf.bssid = NULL;
- break;
case NL80211_IFTYPE_NAN:
idr_init(&sdata->u.nan.function_inst_ids);
spin_lock_init(&sdata->u.nan.func_lock);
@@ -1633,9 +1596,7 @@ static int ieee80211_runtime_change_iftype(struct ieee80211_sub_if_data *sdata,
case NL80211_IFTYPE_OCB:
/*
* Could probably support everything
- * but WDS here (WDS do_open can fail
- * under memory pressure, which this
- * code isn't prepared to handle).
+ * but here.
*/
break;
case NL80211_IFTYPE_P2P_CLIENT:
@@ -1728,7 +1689,6 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
case NL80211_IFTYPE_MONITOR:
/* doesn't matter */
break;
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_AP_VLAN:
/* match up with an AP interface */
list_for_each_entry(sdata, &local->interfaces, list) {
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 523380aed92e..b58d588440f0 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -935,14 +935,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
return -EINVAL;
}
} else {
- /*
- * WDS is currently prohibited when channel contexts are used
- * because there's no clear definition of which channel WDS
- * type interfaces use
- */
- if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS))
- return -EINVAL;
-
/* DFS is not supported with multi-channel combinations yet */
for (i = 0; i < local->hw.wiphy->n_iface_combinations; i++) {
const struct ieee80211_iface_combination *comb;
diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
index 38c45e1dafd8..ae378a41c927 100644
--- a/net/mac80211/pm.c
+++ b/net/mac80211/pm.c
@@ -150,21 +150,6 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
case NL80211_IFTYPE_STATION:
ieee80211_mgd_quiesce(sdata);
break;
- case NL80211_IFTYPE_WDS:
- /* tear down aggregation sessions and remove STAs */
- mutex_lock(&local->sta_mtx);
- sta = sdata->u.wds.sta;
- if (sta && sta->uploaded) {
- enum ieee80211_sta_state state;
-
- state = sta->sta_state;
- for (; state > IEEE80211_STA_NOTEXIST; state--)
- WARN_ON(drv_sta_state(local, sta->sdata,
- sta, state,
- state - 1));
- }
- mutex_unlock(&local->sta_mtx);
- break;
default:
break;
}
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 09d1c9fb8872..062c2b45584e 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1477,7 +1477,6 @@ ieee80211_rx_h_check(struct ieee80211_rx_data *rx)
if (unlikely((ieee80211_is_data(hdr->frame_control) ||
ieee80211_is_pspoll(hdr->frame_control)) &&
rx->sdata->vif.type != NL80211_IFTYPE_ADHOC &&
- rx->sdata->vif.type != NL80211_IFTYPE_WDS &&
rx->sdata->vif.type != NL80211_IFTYPE_OCB &&
(!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_ASSOC)))) {
/*
@@ -4080,10 +4079,6 @@ static bool ieee80211_accept_frame(struct ieee80211_rx_data *rx)
return false;
return true;
- case NL80211_IFTYPE_WDS:
- if (bssid || !ieee80211_is_data(hdr->frame_control))
- return false;
- return ether_addr_equal(sdata->u.wds.remote_addr, hdr->addr2);
case NL80211_IFTYPE_P2P_DEVICE:
return ieee80211_is_public_action(hdr, skb->len) ||
ieee80211_is_probe_req(hdr->frame_control) ||
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 1651cf7b2500..72f84b33a6ba 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -319,9 +319,6 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
if (tx->sdata->vif.type == NL80211_IFTYPE_OCB)
return TX_CONTINUE;
- if (tx->sdata->vif.type == NL80211_IFTYPE_WDS)
- return TX_CONTINUE;
-
if (tx->flags & IEEE80211_TX_PS_BUFFERED)
return TX_CONTINUE;
@@ -2289,8 +2286,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
* we handle as though they are non-injected frames.
* This code here isn't entirely correct, the local MAC address
* isn't always enough to find the interface to use; for proper
- * VLAN/WDS support we will need a different mechanism (which
- * likely isn't going to be monitor interfaces).
+ * VLAN support we have an nl80211-based mechanism.
*
* This is necessary, for example, for old hostapd versions that
* don't use nl80211-based management TX/RX.
@@ -2301,8 +2297,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
if (!ieee80211_sdata_running(tmp_sdata))
continue;
if (tmp_sdata->vif.type == NL80211_IFTYPE_MONITOR ||
- tmp_sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
- tmp_sdata->vif.type == NL80211_IFTYPE_WDS)
+ tmp_sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
continue;
if (ether_addr_equal(tmp_sdata->vif.addr, hdr->addr2)) {
sdata = tmp_sdata;
@@ -2396,9 +2391,6 @@ int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata,
}
sta = sta_info_get_bss(sdata, skb->data);
break;
- case NL80211_IFTYPE_WDS:
- sta = sta_info_get(sdata, sdata->u.wds.remote_addr);
- break;
#ifdef CONFIG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
/* determined much later */
@@ -2574,20 +2566,6 @@ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata,
hdrlen = 24;
band = chanctx_conf->def.chan->band;
break;
- case NL80211_IFTYPE_WDS:
- fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
- /* RA TA DA SA */
- memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN);
- memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
- memcpy(hdr.addr3, skb->data, ETH_ALEN);
- memcpy(hdr.addr4, skb->data + ETH_ALEN, ETH_ALEN);
- hdrlen = 30;
- /*
- * This is the exception! WDS style interfaces are prohibited
- * when channel contexts are in used so this must be valid
- */
- band = local->hw.conf.chandef.chan->band;
- break;
#ifdef CONFIG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
if (!is_multicast_ether_addr(skb->data)) {
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 49342060490f..70a27948a084 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2513,7 +2513,6 @@ int ieee80211_reconfig(struct ieee80211_local *local)
return res;
}
break;
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_AP_VLAN:
case NL80211_IFTYPE_MONITOR:
case NL80211_IFTYPE_P2P_DEVICE:
@@ -2523,6 +2522,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
case NUM_NL80211_IFTYPES:
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_P2P_GO:
+ case NL80211_IFTYPE_WDS:
WARN_ON(1);
break;
}
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index 2702d314ef59..9ea6004abe1b 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -205,9 +205,6 @@ u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
case NL80211_IFTYPE_AP:
ra = skb->data;
break;
- case NL80211_IFTYPE_WDS:
- ra = sdata->u.wds.remote_addr;
- break;
case NL80211_IFTYPE_STATION:
/* might be a TDLS station */
sta = sta_info_get(sdata, skb->data);
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 8/8] cfg80211: remove WDS code
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (6 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 7/8] mac80211: remove WDS-related code Johannes Berg
@ 2020-11-09 9:57 ` Johannes Berg
2020-11-09 11:11 ` Kalle Valo
2020-11-09 11:13 ` [PATCH 0/8] wireless: remove WDS mode Kalle Valo
8 siblings, 1 reply; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 9:57 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
Remove all the code that was there to configure WDS interfaces,
now that there's no way to reach it anymore.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
include/net/cfg80211.h | 5 ----
include/uapi/linux/nl80211.h | 3 ++-
net/wireless/chan.c | 6 ++---
net/wireless/core.c | 8 +-----
net/wireless/nl80211.c | 36 ++-----------------------
net/wireless/rdev-ops.h | 10 -------
net/wireless/trace.h | 5 ----
net/wireless/util.c | 5 ++--
net/wireless/wext-compat.c | 51 ------------------------------------
9 files changed, 10 insertions(+), 119 deletions(-)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 0ba8d1fa6eb9..4ff804a8bc1d 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -3745,8 +3745,6 @@ struct mgmt_frame_regs {
* @get_tx_power: store the current TX power into the dbm variable;
* return 0 if successful
*
- * @set_wds_peer: set the WDS peer for a WDS interface
- *
* @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting
* functions to adjust rfkill hw state
*
@@ -4067,9 +4065,6 @@ struct cfg80211_ops {
int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
int *dbm);
- int (*set_wds_peer)(struct wiphy *wiphy, struct net_device *dev,
- const u8 *addr);
-
void (*rfkill_poll)(struct wiphy *wiphy);
#ifdef CONFIG_NL80211_TESTMODE
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index e1e5b3d4dd81..3e0d4a038ab6 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -757,7 +757,8 @@
* of any other interfaces, and other interfaces will again take
* precedence when they are used.
*
- * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
+ * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface
+ * (no longer supported).
*
* @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform
* multicast to unicast conversion. When enabled, all multicast packets
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 22d1779ab2b1..e4030f1fbc60 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -530,10 +530,10 @@ int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_MONITOR:
case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_NAN:
break;
+ case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_UNSPECIFIED:
case NUM_NL80211_IFTYPES:
WARN_ON(1);
@@ -677,12 +677,12 @@ bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev)
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_MONITOR:
case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_P2P_DEVICE:
/* Can NAN type be considered as beaconing interface? */
case NL80211_IFTYPE_NAN:
break;
case NL80211_IFTYPE_UNSPECIFIED:
+ case NL80211_IFTYPE_WDS:
case NUM_NL80211_IFTYPES:
WARN_ON(1);
}
@@ -1324,12 +1324,12 @@ cfg80211_get_chan_state(struct wireless_dev *wdev,
break;
case NL80211_IFTYPE_MONITOR:
case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_NAN:
/* these interface types don't really have a channel */
return;
case NL80211_IFTYPE_UNSPECIFIED:
+ case NL80211_IFTYPE_WDS:
case NUM_NL80211_IFTYPES:
WARN_ON(1);
}
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 9f23923e8d29..f6b744e91ff4 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -631,10 +631,8 @@ static int wiphy_verify_combinations(struct wiphy *wiphy)
return -EINVAL;
}
-#ifndef CONFIG_WIRELESS_WDS
if (WARN_ON(all_iftypes & BIT(NL80211_IFTYPE_WDS)))
return -EINVAL;
-#endif
/* You can't even choose that many! */
if (WARN_ON(cnt < c->max_interfaces))
@@ -675,10 +673,8 @@ int wiphy_register(struct wiphy *wiphy)
!(wiphy->nan_supported_bands & BIT(NL80211_BAND_2GHZ)))))
return -EINVAL;
-#ifndef CONFIG_WIRELESS_WDS
if (WARN_ON(wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS)))
return -EINVAL;
-#endif
if (WARN_ON(wiphy->pmsr_capa && !wiphy->pmsr_capa->ftm.supported))
return -EINVAL;
@@ -1202,9 +1198,6 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev,
case NL80211_IFTYPE_OCB:
__cfg80211_leave_ocb(rdev, dev);
break;
- case NL80211_IFTYPE_WDS:
- /* must be handled by mac80211/driver, has no APIs */
- break;
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_NAN:
/* cannot happen, has no netdev */
@@ -1214,6 +1207,7 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev,
/* nothing to do */
break;
case NL80211_IFTYPE_UNSPECIFIED:
+ case NL80211_IFTYPE_WDS:
case NUM_NL80211_IFTYPES:
/* invalid */
break;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index aad37e7c7f91..b76bdc8417c4 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1885,7 +1885,6 @@ static int nl80211_add_commands_unsplit(struct cfg80211_registered_device *rdev,
if (nla_put_u32(msg, i, NL80211_CMD_SET_CHANNEL))
goto nla_put_failure;
}
- CMD(set_wds_peer, SET_WDS_PEER);
if (rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_TDLS) {
CMD(tdls_mgmt, TDLS_MGMT);
CMD(tdls_oper, TDLS_OPER);
@@ -2863,8 +2862,8 @@ static int parse_txq_params(struct nlattr *tb[],
static bool nl80211_can_set_dev_channel(struct wireless_dev *wdev)
{
/*
- * You can only set the channel explicitly for WDS interfaces,
- * all others have their channel managed via their respective
+ * You can only set the channel explicitly for some interfaces,
+ * most have their channel managed via their respective
* "establish a connection" command (connect, join, ...)
*
* For AP/GO and mesh mode, the channel can be set with the
@@ -3069,29 +3068,6 @@ static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info)
return __nl80211_set_channel(rdev, netdev, info);
}
-static int nl80211_set_wds_peer(struct sk_buff *skb, struct genl_info *info)
-{
- struct cfg80211_registered_device *rdev = info->user_ptr[0];
- struct net_device *dev = info->user_ptr[1];
- struct wireless_dev *wdev = dev->ieee80211_ptr;
- const u8 *bssid;
-
- if (!info->attrs[NL80211_ATTR_MAC])
- return -EINVAL;
-
- if (netif_running(dev))
- return -EBUSY;
-
- if (!rdev->ops->set_wds_peer)
- return -EOPNOTSUPP;
-
- if (wdev->iftype != NL80211_IFTYPE_WDS)
- return -EOPNOTSUPP;
-
- bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
- return rdev_set_wds_peer(rdev, dev, bssid);
-}
-
static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
{
struct cfg80211_registered_device *rdev;
@@ -15173,14 +15149,6 @@ static const struct genl_small_ops nl80211_small_ops[] = {
.internal_flags = NL80211_FLAG_NEED_NETDEV |
NL80211_FLAG_NEED_RTNL,
},
- {
- .cmd = NL80211_CMD_SET_WDS_PEER,
- .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .doit = nl80211_set_wds_peer,
- .flags = GENL_UNS_ADMIN_PERM,
- .internal_flags = NL80211_FLAG_NEED_NETDEV |
- NL80211_FLAG_NEED_RTNL,
- },
{
.cmd = NL80211_CMD_JOIN_MESH,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
diff --git a/net/wireless/rdev-ops.h b/net/wireless/rdev-ops.h
index 950d57494168..5e2f349c92a8 100644
--- a/net/wireless/rdev-ops.h
+++ b/net/wireless/rdev-ops.h
@@ -582,16 +582,6 @@ static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev,
return ret;
}
-static inline int rdev_set_wds_peer(struct cfg80211_registered_device *rdev,
- struct net_device *dev, const u8 *addr)
-{
- int ret;
- trace_rdev_set_wds_peer(&rdev->wiphy, dev, addr);
- ret = rdev->ops->set_wds_peer(&rdev->wiphy, dev, addr);
- trace_rdev_return_int(&rdev->wiphy, ret);
- return ret;
-}
-
static inline int
rdev_set_multicast_to_unicast(struct cfg80211_registered_device *rdev,
struct net_device *dev,
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index 6e218a0acd4e..817c6fef13be 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -838,11 +838,6 @@ DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath,
TP_ARGS(wiphy, netdev, mac)
);
-DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_set_wds_peer,
- TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac),
- TP_ARGS(wiphy, netdev, mac)
-);
-
TRACE_EVENT(rdev_dump_station,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx,
u8 *mac),
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 5b6c80ae564a..5af88037f1fb 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -550,8 +550,7 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
return -1;
break;
case cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS):
- if (unlikely(iftype != NL80211_IFTYPE_WDS &&
- iftype != NL80211_IFTYPE_MESH_POINT &&
+ if (unlikely(iftype != NL80211_IFTYPE_MESH_POINT &&
iftype != NL80211_IFTYPE_AP_VLAN &&
iftype != NL80211_IFTYPE_STATION))
return -1;
@@ -1051,7 +1050,6 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
case NL80211_IFTYPE_P2P_GO:
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_MESH_POINT:
/* bridging OK */
break;
@@ -1063,6 +1061,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
/* not happening */
break;
case NL80211_IFTYPE_P2P_DEVICE:
+ case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_NAN:
WARN_ON(1);
break;
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index 78f2927ead7f..b84a345b2653 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -49,9 +49,6 @@ int cfg80211_wext_siwmode(struct net_device *dev, struct iw_request_info *info,
case IW_MODE_ADHOC:
type = NL80211_IFTYPE_ADHOC;
break;
- case IW_MODE_REPEAT:
- type = NL80211_IFTYPE_WDS;
- break;
case IW_MODE_MONITOR:
type = NL80211_IFTYPE_MONITOR;
break;
@@ -1150,50 +1147,6 @@ static int cfg80211_wext_giwpower(struct net_device *dev,
return 0;
}
-static int cfg80211_wds_wext_siwap(struct net_device *dev,
- struct iw_request_info *info,
- struct sockaddr *addr, char *extra)
-{
- struct wireless_dev *wdev = dev->ieee80211_ptr;
- struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
- int err;
-
- if (WARN_ON(wdev->iftype != NL80211_IFTYPE_WDS))
- return -EINVAL;
-
- if (addr->sa_family != ARPHRD_ETHER)
- return -EINVAL;
-
- if (netif_running(dev))
- return -EBUSY;
-
- if (!rdev->ops->set_wds_peer)
- return -EOPNOTSUPP;
-
- err = rdev_set_wds_peer(rdev, dev, (u8 *)&addr->sa_data);
- if (err)
- return err;
-
- memcpy(&wdev->wext.bssid, (u8 *) &addr->sa_data, ETH_ALEN);
-
- return 0;
-}
-
-static int cfg80211_wds_wext_giwap(struct net_device *dev,
- struct iw_request_info *info,
- struct sockaddr *addr, char *extra)
-{
- struct wireless_dev *wdev = dev->ieee80211_ptr;
-
- if (WARN_ON(wdev->iftype != NL80211_IFTYPE_WDS))
- return -EINVAL;
-
- addr->sa_family = ARPHRD_ETHER;
- memcpy(&addr->sa_data, wdev->wext.bssid, ETH_ALEN);
-
- return 0;
-}
-
static int cfg80211_wext_siwrate(struct net_device *dev,
struct iw_request_info *info,
struct iw_param *rate, char *extra)
@@ -1371,8 +1324,6 @@ static int cfg80211_wext_siwap(struct net_device *dev,
return cfg80211_ibss_wext_siwap(dev, info, ap_addr, extra);
case NL80211_IFTYPE_STATION:
return cfg80211_mgd_wext_siwap(dev, info, ap_addr, extra);
- case NL80211_IFTYPE_WDS:
- return cfg80211_wds_wext_siwap(dev, info, ap_addr, extra);
default:
return -EOPNOTSUPP;
}
@@ -1389,8 +1340,6 @@ static int cfg80211_wext_giwap(struct net_device *dev,
return cfg80211_ibss_wext_giwap(dev, info, ap_addr, extra);
case NL80211_IFTYPE_STATION:
return cfg80211_mgd_wext_giwap(dev, info, ap_addr, extra);
- case NL80211_IFTYPE_WDS:
- return cfg80211_wds_wext_giwap(dev, info, ap_addr, extra);
default:
return -EOPNOTSUPP;
}
--
2.26.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 8/8] cfg80211: remove WDS code
2020-11-09 9:57 ` [PATCH 8/8] cfg80211: remove WDS code Johannes Berg
@ 2020-11-09 11:11 ` Kalle Valo
2020-11-09 11:12 ` Johannes Berg
0 siblings, 1 reply; 16+ messages in thread
From: Kalle Valo @ 2020-11-09 11:11 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, Johannes Berg
Johannes Berg <johannes@sipsolutions.net> writes:
> From: Johannes Berg <johannes.berg@intel.com>
>
> Remove all the code that was there to configure WDS interfaces,
> now that there's no way to reach it anymore.
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[...]
> @@ -675,10 +673,8 @@ int wiphy_register(struct wiphy *wiphy)
> !(wiphy->nan_supported_bands & BIT(NL80211_BAND_2GHZ)))))
> return -EINVAL;
>
> -#ifndef CONFIG_WIRELESS_WDS
> if (WARN_ON(wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS)))
> return -EINVAL;
> -#endif
What about out-of-tree drivers? Should we have (or do we already have?)
a some kind safe guard if an out of tree driver tries to use WDS?
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 8/8] cfg80211: remove WDS code
2020-11-09 11:11 ` Kalle Valo
@ 2020-11-09 11:12 ` Johannes Berg
2020-11-09 11:33 ` Kalle Valo
0 siblings, 1 reply; 16+ messages in thread
From: Johannes Berg @ 2020-11-09 11:12 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless
On Mon, 2020-11-09 at 13:11 +0200, Kalle Valo wrote:
> Johannes Berg <johannes@sipsolutions.net> writes:
>
> > From: Johannes Berg <johannes.berg@intel.com>
> >
> > Remove all the code that was there to configure WDS interfaces,
> > now that there's no way to reach it anymore.
> >
> > Signed-off-by: Johannes Berg <johannes.berg@intel.com>
>
> [...]
>
> > @@ -675,10 +673,8 @@ int wiphy_register(struct wiphy *wiphy)
> > !(wiphy->nan_supported_bands & BIT(NL80211_BAND_2GHZ)))))
> > return -EINVAL;
> >
> > -#ifndef CONFIG_WIRELESS_WDS
> > if (WARN_ON(wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS)))
> > return -EINVAL;
> > -#endif
>
> What about out-of-tree drivers? Should we have (or do we already have?)
> a some kind safe guard if an out of tree driver tries to use WDS?
That's what happens here, no? We warn and return invalid - now
unconditionally, before we allowed it if CONFIG_WIRELESS_WDS was
enabled.
johannes
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/8] wireless: remove WDS mode
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
` (7 preceding siblings ...)
2020-11-09 9:57 ` [PATCH 8/8] cfg80211: remove WDS code Johannes Berg
@ 2020-11-09 11:13 ` Kalle Valo
8 siblings, 0 replies; 16+ messages in thread
From: Kalle Valo @ 2020-11-09 11:13 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
Johannes Berg <johannes@sipsolutions.net> writes:
> We use 4-addr AP/client instead. Remove WDS code that was
> basically not possible to enable anyway.
If you take the driver patches to your tree:
Acked-by: Kalle Valo <kvalo@codeaurora.org>
But just let me know if I should take the driver patches instead.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 8/8] cfg80211: remove WDS code
2020-11-09 11:12 ` Johannes Berg
@ 2020-11-09 11:33 ` Kalle Valo
0 siblings, 0 replies; 16+ messages in thread
From: Kalle Valo @ 2020-11-09 11:33 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
Johannes Berg <johannes@sipsolutions.net> writes:
> On Mon, 2020-11-09 at 13:11 +0200, Kalle Valo wrote:
>> Johannes Berg <johannes@sipsolutions.net> writes:
>>
>> > From: Johannes Berg <johannes.berg@intel.com>
>> >
>> > Remove all the code that was there to configure WDS interfaces,
>> > now that there's no way to reach it anymore.
>> >
>> > Signed-off-by: Johannes Berg <johannes.berg@intel.com>
>>
>> [...]
>>
>> > @@ -675,10 +673,8 @@ int wiphy_register(struct wiphy *wiphy)
>> > !(wiphy->nan_supported_bands & BIT(NL80211_BAND_2GHZ)))))
>> > return -EINVAL;
>> >
>> > -#ifndef CONFIG_WIRELESS_WDS
>> > if (WARN_ON(wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS)))
>> > return -EINVAL;
>> > -#endif
>>
>> What about out-of-tree drivers? Should we have (or do we already have?)
>> a some kind safe guard if an out of tree driver tries to use WDS?
>
> That's what happens here, no? We warn and return invalid - now
> unconditionally, before we allowed it if CONFIG_WIRELESS_WDS was
> enabled.
Argh, I'm blind. I read that the whole if block was removed :) Sorry for
the noise.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 7/8] mac80211: remove WDS-related code
2020-11-09 9:57 ` [PATCH 7/8] mac80211: remove WDS-related code Johannes Berg
@ 2020-11-10 4:58 ` kernel test robot
2020-11-11 11:23 ` kernel test robot
1 sibling, 0 replies; 16+ messages in thread
From: kernel test robot @ 2020-11-10 4:58 UTC (permalink / raw)
To: Johannes Berg, linux-wireless; +Cc: kbuild-all, Johannes Berg
[-- Attachment #1: Type: text/plain, Size: 13181 bytes --]
Hi Johannes,
I love your patch! Perhaps something to improve:
[auto build test WARNING on mac80211-next/master]
[also build test WARNING on mac80211/master wireless-drivers-next/master v5.10-rc3 next-20201109]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: sparc-randconfig-r016-20201109 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
git checkout c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
net/mac80211/iface.c: In function 'ieee80211_do_open':
net/mac80211/iface.c:1015:19: warning: unused variable 'sta' [-Wunused-variable]
1015 | struct sta_info *sta;
| ^~~
net/mac80211/iface.c: In function 'ieee80211_setup_sdata':
>> net/mac80211/iface.c:1507:2: warning: enumeration value 'NL80211_IFTYPE_WDS' not handled in switch [-Wswitch]
1507 | switch (type) {
| ^~~~~~
vim +/NL80211_IFTYPE_WDS +1507 net/mac80211/iface.c
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1466
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1467 /*
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1468 * Helper function to initialise an interface to a specific type.
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1469 */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1470 static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1471 enum nl80211_iftype type)
f0706e828e96d0f net/mac80211/ieee80211_iface.c Jiri Benc 2007-05-05 1472 {
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1473 static const u8 bssid_wildcard[ETH_ALEN] = {0xff, 0xff, 0xff,
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1474 0xff, 0xff, 0xff};
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1475
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1476 /* clear type-dependent union */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1477 memset(&sdata->u, 0, sizeof(sdata->u));
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1478
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1479 /* and set some type-dependent values */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1480 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1481 sdata->vif.p2p = false;
60719ffd721f676 net/mac80211/iface.c Johannes Berg 2008-09-16 1482 sdata->wdev.iftype = type;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1483
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1484 sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE);
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1485 sdata->control_port_no_encrypt = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1486 sdata->control_port_over_nl80211 = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1487 sdata->control_port_no_preauth = false;
2475b1cc0d5283a net/mac80211/iface.c Max Stepanov 2013-03-24 1488 sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM;
d3a58df87a2e4c2 net/mac80211/iface.c Avraham Stern 2014-05-22 1489 sdata->vif.bss_conf.idle = true;
db6d9e9e8b48b7a net/mac80211/iface.c Ben Greear 2019-12-17 1490 sdata->vif.bss_conf.txpower = INT_MIN; /* unset */
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1491
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1492 sdata->noack_map = 0;
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1493
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1494 /* only monitor/p2p-device differ */
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1495 if (sdata->dev) {
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1496 sdata->dev->netdev_ops = &ieee80211_dataif_ops;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1497 sdata->dev->type = ARPHRD_ETHER;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1498 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1499
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1500 skb_queue_head_init(&sdata->skb_queue);
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1501 INIT_WORK(&sdata->work, ieee80211_iface_work);
04ecd2578e712c3 net/mac80211/iface.c Johannes Berg 2012-09-11 1502 INIT_WORK(&sdata->recalc_smps, ieee80211_recalc_smps_work);
73da7d5bab79ad7 net/mac80211/iface.c Simon Wunderlich 2013-07-11 1503 INIT_WORK(&sdata->csa_finalize_work, ieee80211_csa_finalize_work);
484298ad1afaf24 net/mac80211/iface.c Michal Kazior 2014-04-09 1504 INIT_LIST_HEAD(&sdata->assigned_chanctx_list);
e3afb920227d37f net/mac80211/iface.c Michal Kazior 2014-04-09 1505 INIT_LIST_HEAD(&sdata->reserved_chanctx_list);
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1506
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 @1507 switch (type) {
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1508 case NL80211_IFTYPE_P2P_GO:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1509 type = NL80211_IFTYPE_AP;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1510 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1511 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1512 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1513 case NL80211_IFTYPE_AP:
d012a605108a482 net/mac80211/iface.c Marco Porsch 2012-10-10 1514 skb_queue_head_init(&sdata->u.ap.ps.bc_buf);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1515 INIT_LIST_HEAD(&sdata->u.ap.vlans);
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1516 sdata->vif.bss_conf.bssid = sdata->vif.addr;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1517 break;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1518 case NL80211_IFTYPE_P2P_CLIENT:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1519 type = NL80211_IFTYPE_STATION;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1520 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1521 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1522 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1523 case NL80211_IFTYPE_STATION:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1524 sdata->vif.bss_conf.bssid = sdata->u.mgd.bssid;
9c6bd79011b14a8 net/mac80211/iface.c Johannes Berg 2008-09-11 1525 ieee80211_sta_setup_sdata(sdata);
472dbc45dc19662 net/mac80211/iface.c Johannes Berg 2008-09-11 1526 break;
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1527 case NL80211_IFTYPE_OCB:
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1528 sdata->vif.bss_conf.bssid = bssid_wildcard;
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1529 ieee80211_ocb_setup_sdata(sdata);
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1530 break;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1531 case NL80211_IFTYPE_ADHOC:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1532 sdata->vif.bss_conf.bssid = sdata->u.ibss.bssid;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1533 ieee80211_ibss_setup_sdata(sdata);
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1534 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1535 case NL80211_IFTYPE_MESH_POINT:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1536 if (ieee80211_vif_is_mesh(&sdata->vif))
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1537 ieee80211_mesh_init_sdata(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1538 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1539 case NL80211_IFTYPE_MONITOR:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1540 sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
587e729ecff9594 net/mac80211/iface.c Johannes Berg 2009-01-30 1541 sdata->dev->netdev_ops = &ieee80211_monitorif_ops;
d82121845d44334 net/mac80211/iface.c Aviya Erenfeld 2016-08-29 1542 sdata->u.mntr.flags = MONITOR_FLAG_CONTROL |
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1543 MONITOR_FLAG_OTHER_BSS;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1544 break;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1545 case NL80211_IFTYPE_NAN:
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1546 idr_init(&sdata->u.nan.function_inst_ids);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1547 spin_lock_init(&sdata->u.nan.func_lock);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1548 sdata->vif.bss_conf.bssid = sdata->vif.addr;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1549 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1550 case NL80211_IFTYPE_AP_VLAN:
98104fdeda63d57 net/mac80211/iface.c Johannes Berg 2012-06-16 1551 case NL80211_IFTYPE_P2P_DEVICE:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1552 sdata->vif.bss_conf.bssid = sdata->vif.addr;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1553 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1554 case NL80211_IFTYPE_UNSPECIFIED:
2e161f78e5f63a7 net/mac80211/iface.c Johannes Berg 2010-08-12 1555 case NUM_NL80211_IFTYPES:
c7976f5272486e4 net/mac80211/iface.c Luca Coelho 2017-10-29 1556 WARN_ON(1);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1557 break;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1558 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1559
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1560 ieee80211_debugfs_add_netdev(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1561 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1562
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30448 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 7/8] mac80211: remove WDS-related code
@ 2020-11-10 4:58 ` kernel test robot
0 siblings, 0 replies; 16+ messages in thread
From: kernel test robot @ 2020-11-10 4:58 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 13324 bytes --]
Hi Johannes,
I love your patch! Perhaps something to improve:
[auto build test WARNING on mac80211-next/master]
[also build test WARNING on mac80211/master wireless-drivers-next/master v5.10-rc3 next-20201109]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: sparc-randconfig-r016-20201109 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
git checkout c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
net/mac80211/iface.c: In function 'ieee80211_do_open':
net/mac80211/iface.c:1015:19: warning: unused variable 'sta' [-Wunused-variable]
1015 | struct sta_info *sta;
| ^~~
net/mac80211/iface.c: In function 'ieee80211_setup_sdata':
>> net/mac80211/iface.c:1507:2: warning: enumeration value 'NL80211_IFTYPE_WDS' not handled in switch [-Wswitch]
1507 | switch (type) {
| ^~~~~~
vim +/NL80211_IFTYPE_WDS +1507 net/mac80211/iface.c
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1466
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1467 /*
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1468 * Helper function to initialise an interface to a specific type.
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1469 */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1470 static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1471 enum nl80211_iftype type)
f0706e828e96d0f net/mac80211/ieee80211_iface.c Jiri Benc 2007-05-05 1472 {
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1473 static const u8 bssid_wildcard[ETH_ALEN] = {0xff, 0xff, 0xff,
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1474 0xff, 0xff, 0xff};
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1475
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1476 /* clear type-dependent union */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1477 memset(&sdata->u, 0, sizeof(sdata->u));
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1478
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1479 /* and set some type-dependent values */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1480 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1481 sdata->vif.p2p = false;
60719ffd721f676 net/mac80211/iface.c Johannes Berg 2008-09-16 1482 sdata->wdev.iftype = type;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1483
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1484 sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE);
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1485 sdata->control_port_no_encrypt = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1486 sdata->control_port_over_nl80211 = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1487 sdata->control_port_no_preauth = false;
2475b1cc0d5283a net/mac80211/iface.c Max Stepanov 2013-03-24 1488 sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM;
d3a58df87a2e4c2 net/mac80211/iface.c Avraham Stern 2014-05-22 1489 sdata->vif.bss_conf.idle = true;
db6d9e9e8b48b7a net/mac80211/iface.c Ben Greear 2019-12-17 1490 sdata->vif.bss_conf.txpower = INT_MIN; /* unset */
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1491
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1492 sdata->noack_map = 0;
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1493
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1494 /* only monitor/p2p-device differ */
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1495 if (sdata->dev) {
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1496 sdata->dev->netdev_ops = &ieee80211_dataif_ops;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1497 sdata->dev->type = ARPHRD_ETHER;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1498 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1499
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1500 skb_queue_head_init(&sdata->skb_queue);
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1501 INIT_WORK(&sdata->work, ieee80211_iface_work);
04ecd2578e712c3 net/mac80211/iface.c Johannes Berg 2012-09-11 1502 INIT_WORK(&sdata->recalc_smps, ieee80211_recalc_smps_work);
73da7d5bab79ad7 net/mac80211/iface.c Simon Wunderlich 2013-07-11 1503 INIT_WORK(&sdata->csa_finalize_work, ieee80211_csa_finalize_work);
484298ad1afaf24 net/mac80211/iface.c Michal Kazior 2014-04-09 1504 INIT_LIST_HEAD(&sdata->assigned_chanctx_list);
e3afb920227d37f net/mac80211/iface.c Michal Kazior 2014-04-09 1505 INIT_LIST_HEAD(&sdata->reserved_chanctx_list);
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1506
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 @1507 switch (type) {
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1508 case NL80211_IFTYPE_P2P_GO:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1509 type = NL80211_IFTYPE_AP;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1510 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1511 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1512 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1513 case NL80211_IFTYPE_AP:
d012a605108a482 net/mac80211/iface.c Marco Porsch 2012-10-10 1514 skb_queue_head_init(&sdata->u.ap.ps.bc_buf);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1515 INIT_LIST_HEAD(&sdata->u.ap.vlans);
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1516 sdata->vif.bss_conf.bssid = sdata->vif.addr;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1517 break;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1518 case NL80211_IFTYPE_P2P_CLIENT:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1519 type = NL80211_IFTYPE_STATION;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1520 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1521 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1522 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1523 case NL80211_IFTYPE_STATION:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1524 sdata->vif.bss_conf.bssid = sdata->u.mgd.bssid;
9c6bd79011b14a8 net/mac80211/iface.c Johannes Berg 2008-09-11 1525 ieee80211_sta_setup_sdata(sdata);
472dbc45dc19662 net/mac80211/iface.c Johannes Berg 2008-09-11 1526 break;
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1527 case NL80211_IFTYPE_OCB:
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1528 sdata->vif.bss_conf.bssid = bssid_wildcard;
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1529 ieee80211_ocb_setup_sdata(sdata);
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1530 break;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1531 case NL80211_IFTYPE_ADHOC:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1532 sdata->vif.bss_conf.bssid = sdata->u.ibss.bssid;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1533 ieee80211_ibss_setup_sdata(sdata);
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1534 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1535 case NL80211_IFTYPE_MESH_POINT:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1536 if (ieee80211_vif_is_mesh(&sdata->vif))
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1537 ieee80211_mesh_init_sdata(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1538 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1539 case NL80211_IFTYPE_MONITOR:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1540 sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
587e729ecff9594 net/mac80211/iface.c Johannes Berg 2009-01-30 1541 sdata->dev->netdev_ops = &ieee80211_monitorif_ops;
d82121845d44334 net/mac80211/iface.c Aviya Erenfeld 2016-08-29 1542 sdata->u.mntr.flags = MONITOR_FLAG_CONTROL |
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1543 MONITOR_FLAG_OTHER_BSS;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1544 break;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1545 case NL80211_IFTYPE_NAN:
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1546 idr_init(&sdata->u.nan.function_inst_ids);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1547 spin_lock_init(&sdata->u.nan.func_lock);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1548 sdata->vif.bss_conf.bssid = sdata->vif.addr;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1549 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1550 case NL80211_IFTYPE_AP_VLAN:
98104fdeda63d57 net/mac80211/iface.c Johannes Berg 2012-06-16 1551 case NL80211_IFTYPE_P2P_DEVICE:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1552 sdata->vif.bss_conf.bssid = sdata->vif.addr;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1553 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1554 case NL80211_IFTYPE_UNSPECIFIED:
2e161f78e5f63a7 net/mac80211/iface.c Johannes Berg 2010-08-12 1555 case NUM_NL80211_IFTYPES:
c7976f5272486e4 net/mac80211/iface.c Luca Coelho 2017-10-29 1556 WARN_ON(1);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1557 break;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1558 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1559
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1560 ieee80211_debugfs_add_netdev(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1561 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1562
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30448 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 7/8] mac80211: remove WDS-related code
2020-11-09 9:57 ` [PATCH 7/8] mac80211: remove WDS-related code Johannes Berg
2020-11-10 4:58 ` kernel test robot
@ 2020-11-11 11:23 ` kernel test robot
1 sibling, 0 replies; 16+ messages in thread
From: kernel test robot @ 2020-11-11 11:23 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 13409 bytes --]
Hi Johannes,
I love your patch! Perhaps something to improve:
[auto build test WARNING on mac80211-next/master]
[also build test WARNING on mac80211/master wireless-drivers-next/master v5.10-rc3 next-20201111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: arm64-randconfig-r013-20201109 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 09ec07827b1128504457a93dee80b2ceee1af600)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/0day-ci/linux/commit/c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Johannes-Berg/wireless-remove-CONFIG_WIRELESS_WDS/20201109-175921
git checkout c57a74c8fb0ee0e2f65123e27dff3c4887fd9c07
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
net/mac80211/iface.c:1015:19: warning: unused variable 'sta' [-Wunused-variable]
struct sta_info *sta;
^
>> net/mac80211/iface.c:1507:10: warning: enumeration value 'NL80211_IFTYPE_WDS' not handled in switch [-Wswitch]
switch (type) {
^
2 warnings generated.
vim +/NL80211_IFTYPE_WDS +1507 net/mac80211/iface.c
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1466
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1467 /*
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1468 * Helper function to initialise an interface to a specific type.
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1469 */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1470 static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1471 enum nl80211_iftype type)
f0706e828e96d0f net/mac80211/ieee80211_iface.c Jiri Benc 2007-05-05 1472 {
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1473 static const u8 bssid_wildcard[ETH_ALEN] = {0xff, 0xff, 0xff,
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1474 0xff, 0xff, 0xff};
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1475
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1476 /* clear type-dependent union */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1477 memset(&sdata->u, 0, sizeof(sdata->u));
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1478
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1479 /* and set some type-dependent values */
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1480 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1481 sdata->vif.p2p = false;
60719ffd721f676 net/mac80211/iface.c Johannes Berg 2008-09-16 1482 sdata->wdev.iftype = type;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1483
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1484 sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE);
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1485 sdata->control_port_no_encrypt = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1486 sdata->control_port_over_nl80211 = false;
7f3f96cedd79e36 net/mac80211/iface.c Markus Theil 2020-03-12 1487 sdata->control_port_no_preauth = false;
2475b1cc0d5283a net/mac80211/iface.c Max Stepanov 2013-03-24 1488 sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM;
d3a58df87a2e4c2 net/mac80211/iface.c Avraham Stern 2014-05-22 1489 sdata->vif.bss_conf.idle = true;
db6d9e9e8b48b7a net/mac80211/iface.c Ben Greear 2019-12-17 1490 sdata->vif.bss_conf.txpower = INT_MIN; /* unset */
a621fa4d6a7fdf9 net/mac80211/iface.c Johannes Berg 2010-08-27 1491
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1492 sdata->noack_map = 0;
b53be7920bd9bb1 net/mac80211/iface.c Simon Wunderlich 2011-11-18 1493
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1494 /* only monitor/p2p-device differ */
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1495 if (sdata->dev) {
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1496 sdata->dev->netdev_ops = &ieee80211_dataif_ops;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1497 sdata->dev->type = ARPHRD_ETHER;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1498 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1499
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1500 skb_queue_head_init(&sdata->skb_queue);
1fa57d017366fb2 net/mac80211/iface.c Johannes Berg 2010-06-10 1501 INIT_WORK(&sdata->work, ieee80211_iface_work);
04ecd2578e712c3 net/mac80211/iface.c Johannes Berg 2012-09-11 1502 INIT_WORK(&sdata->recalc_smps, ieee80211_recalc_smps_work);
73da7d5bab79ad7 net/mac80211/iface.c Simon Wunderlich 2013-07-11 1503 INIT_WORK(&sdata->csa_finalize_work, ieee80211_csa_finalize_work);
484298ad1afaf24 net/mac80211/iface.c Michal Kazior 2014-04-09 1504 INIT_LIST_HEAD(&sdata->assigned_chanctx_list);
e3afb920227d37f net/mac80211/iface.c Michal Kazior 2014-04-09 1505 INIT_LIST_HEAD(&sdata->reserved_chanctx_list);
35f20c14a103ca2 net/mac80211/iface.c Johannes Berg 2010-06-10 1506
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 @1507 switch (type) {
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1508 case NL80211_IFTYPE_P2P_GO:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1509 type = NL80211_IFTYPE_AP;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1510 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1511 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1512 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1513 case NL80211_IFTYPE_AP:
d012a605108a482 net/mac80211/iface.c Marco Porsch 2012-10-10 1514 skb_queue_head_init(&sdata->u.ap.ps.bc_buf);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1515 INIT_LIST_HEAD(&sdata->u.ap.vlans);
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1516 sdata->vif.bss_conf.bssid = sdata->vif.addr;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1517 break;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1518 case NL80211_IFTYPE_P2P_CLIENT:
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1519 type = NL80211_IFTYPE_STATION;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1520 sdata->vif.type = type;
2ca27bcff7127da net/mac80211/iface.c Johannes Berg 2010-09-16 1521 sdata->vif.p2p = true;
fc0561dc6a9c616 net/mac80211/iface.c Gustavo A. R. Silva 2020-07-07 1522 fallthrough;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1523 case NL80211_IFTYPE_STATION:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1524 sdata->vif.bss_conf.bssid = sdata->u.mgd.bssid;
9c6bd79011b14a8 net/mac80211/iface.c Johannes Berg 2008-09-11 1525 ieee80211_sta_setup_sdata(sdata);
472dbc45dc19662 net/mac80211/iface.c Johannes Berg 2008-09-11 1526 break;
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1527 case NL80211_IFTYPE_OCB:
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1528 sdata->vif.bss_conf.bssid = bssid_wildcard;
239281f803e2efd net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1529 ieee80211_ocb_setup_sdata(sdata);
6e0bd6c35b021dc net/mac80211/iface.c Rostislav Lisovy 2014-11-03 1530 break;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1531 case NL80211_IFTYPE_ADHOC:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1532 sdata->vif.bss_conf.bssid = sdata->u.ibss.bssid;
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1533 ieee80211_ibss_setup_sdata(sdata);
469002983fc90c2 net/mac80211/iface.c Johannes Berg 2009-02-15 1534 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1535 case NL80211_IFTYPE_MESH_POINT:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1536 if (ieee80211_vif_is_mesh(&sdata->vif))
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1537 ieee80211_mesh_init_sdata(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1538 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1539 case NL80211_IFTYPE_MONITOR:
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1540 sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
587e729ecff9594 net/mac80211/iface.c Johannes Berg 2009-01-30 1541 sdata->dev->netdev_ops = &ieee80211_monitorif_ops;
d82121845d44334 net/mac80211/iface.c Aviya Erenfeld 2016-08-29 1542 sdata->u.mntr.flags = MONITOR_FLAG_CONTROL |
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1543 MONITOR_FLAG_OTHER_BSS;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1544 break;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1545 case NL80211_IFTYPE_NAN:
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1546 idr_init(&sdata->u.nan.function_inst_ids);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1547 spin_lock_init(&sdata->u.nan.func_lock);
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1548 sdata->vif.bss_conf.bssid = sdata->vif.addr;
167e33f4f68cc8e net/mac80211/iface.c Ayala Beker 2016-09-20 1549 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1550 case NL80211_IFTYPE_AP_VLAN:
98104fdeda63d57 net/mac80211/iface.c Johannes Berg 2012-06-16 1551 case NL80211_IFTYPE_P2P_DEVICE:
ad2d223aa900179 net/mac80211/iface.c Johannes Berg 2012-12-14 1552 sdata->vif.bss_conf.bssid = sdata->vif.addr;
f142c6b906da451 net/mac80211/iface.c Johannes Berg 2012-06-18 1553 break;
05c914fe330fa8e net/mac80211/iface.c Johannes Berg 2008-09-11 1554 case NL80211_IFTYPE_UNSPECIFIED:
2e161f78e5f63a7 net/mac80211/iface.c Johannes Berg 2010-08-12 1555 case NUM_NL80211_IFTYPES:
c7976f5272486e4 net/mac80211/iface.c Luca Coelho 2017-10-29 1556 WARN_ON(1);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1557 break;
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1558 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1559
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1560 ieee80211_debugfs_add_netdev(sdata);
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1561 }
75636525fbfa78f net/mac80211/iface.c Johannes Berg 2008-07-09 1562
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34259 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2020-11-11 11:23 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-09 9:57 [PATCH 0/8] wireless: remove WDS mode Johannes Berg
2020-11-09 9:57 ` [PATCH 1/8] wireless: remove CONFIG_WIRELESS_WDS Johannes Berg
2020-11-09 9:57 ` [PATCH 2/8] ath9k: remove WDS code Johannes Berg
2020-11-09 9:57 ` [PATCH 3/8] carl9170: " Johannes Berg
2020-11-09 9:57 ` [PATCH 4/8] b43: " Johannes Berg
2020-11-09 9:57 ` [PATCH 5/8] b43legacy: " Johannes Berg
2020-11-09 9:57 ` [PATCH 6/8] rt2x00: " Johannes Berg
2020-11-09 9:57 ` [PATCH 7/8] mac80211: remove WDS-related code Johannes Berg
2020-11-10 4:58 ` kernel test robot
2020-11-10 4:58 ` kernel test robot
2020-11-11 11:23 ` kernel test robot
2020-11-09 9:57 ` [PATCH 8/8] cfg80211: remove WDS code Johannes Berg
2020-11-09 11:11 ` Kalle Valo
2020-11-09 11:12 ` Johannes Berg
2020-11-09 11:33 ` Kalle Valo
2020-11-09 11:13 ` [PATCH 0/8] wireless: remove WDS mode Kalle Valo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.