]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: cfg80211: support key installation on non-netdev wdevs
authorAvraham Stern <avraham.stern@intel.com>
Wed, 7 Jan 2026 13:20:02 +0000 (15:20 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 2 Mar 2026 10:28:33 +0000 (11:28 +0100)
Currently key installation is only supported for netdev. For NAN,
support most key operations (except setting default data key) on
wdevs instead of netdevs, and adjust all the APIs and tracing to
match.

Since nothing currently sets NL80211_EXT_FEATURE_SECURE_NAN, this
doesn't change anything (P2P Device already isn't allowed.)

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260107150057.69a0cfad95fa.I00efdf3b2c11efab82ef6ece9f393382bcf33ba8@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
17 files changed:
drivers/net/wireless/ath/ath6kl/cfg80211.c
drivers/net/wireless/ath/wil6210/cfg80211.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
drivers/net/wireless/marvell/libertas/cfg.c
drivers/net/wireless/marvell/mwifiex/cfg80211.c
drivers/net/wireless/microchip/wilc1000/cfg80211.c
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
include/net/cfg80211.h
net/mac80211/cfg.c
net/wireless/ibss.c
net/wireless/nl80211.c
net/wireless/rdev-ops.h
net/wireless/sme.c
net/wireless/trace.h
net/wireless/util.c
net/wireless/wext-compat.c

index eecba2201b10068e9891b29c1f14e435f3308b10..739a24a6ad6761c8d571ec76a07f4e348ba9c424 100644 (file)
@@ -1123,13 +1123,13 @@ void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq,
        wiphy_unlock(vif->ar->wiphy);
 }
 
-static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
+static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                   int link_id, u8 key_index, bool pairwise,
                                   const u8 *mac_addr,
                                   struct key_params *params)
 {
-       struct ath6kl *ar = ath6kl_priv(ndev);
-       struct ath6kl_vif *vif = netdev_priv(ndev);
+       struct ath6kl *ar = ath6kl_priv(wdev->netdev);
+       struct ath6kl_vif *vif = netdev_priv(wdev->netdev);
        struct ath6kl_key *key = NULL;
        int seq_len;
        u8 key_usage;
@@ -1248,12 +1248,12 @@ static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
                                     (u8 *) mac_addr, SYNC_BOTH_WMIFLAG);
 }
 
-static int ath6kl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
+static int ath6kl_cfg80211_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                   int link_id, u8 key_index, bool pairwise,
                                   const u8 *mac_addr)
 {
-       struct ath6kl *ar = ath6kl_priv(ndev);
-       struct ath6kl_vif *vif = netdev_priv(ndev);
+       struct ath6kl *ar = ath6kl_priv(wdev->netdev);
+       struct ath6kl_vif *vif = netdev_priv(wdev->netdev);
 
        ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: index %d\n", __func__, key_index);
 
@@ -1278,13 +1278,13 @@ static int ath6kl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
        return ath6kl_wmi_deletekey_cmd(ar->wmi, vif->fw_vif_idx, key_index);
 }
 
-static int ath6kl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
+static int ath6kl_cfg80211_get_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                   int link_id, u8 key_index, bool pairwise,
                                   const u8 *mac_addr, void *cookie,
                                   void (*callback) (void *cookie,
                                                     struct key_params *))
 {
-       struct ath6kl_vif *vif = netdev_priv(ndev);
+       struct ath6kl_vif *vif = netdev_priv(wdev->netdev);
        struct ath6kl_key *key = NULL;
        struct key_params params;
 
index 2d8660ccc6f338ec1aa29b788b50080f7c73e704..3d6e5aad48b1af02ef34e0108017467c68e5422d 100644 (file)
@@ -1619,15 +1619,14 @@ static void wil_del_rx_key(u8 key_index, enum wmi_key_usage key_usage,
 }
 
 static int wil_cfg80211_add_key(struct wiphy *wiphy,
-                               struct net_device *ndev, int link_id,
+                               struct wireless_dev *wdev, int link_id,
                                u8 key_index, bool pairwise,
                                const u8 *mac_addr,
                                struct key_params *params)
 {
        int rc;
-       struct wil6210_vif *vif = ndev_to_vif(ndev);
        struct wil6210_priv *wil = wiphy_to_wil(wiphy);
-       struct wireless_dev *wdev = vif_to_wdev(vif);
+       struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
        enum wmi_key_usage key_usage = wil_detect_key_usage(wdev, pairwise);
        struct wil_sta_info *cs = wil_find_sta_by_key_usage(wil, vif->mid,
                                                            key_usage,
@@ -1695,13 +1694,12 @@ static int wil_cfg80211_add_key(struct wiphy *wiphy,
 }
 
 static int wil_cfg80211_del_key(struct wiphy *wiphy,
-                               struct net_device *ndev, int link_id,
+                               struct wireless_dev *wdev, int link_id,
                                u8 key_index, bool pairwise,
                                const u8 *mac_addr)
 {
-       struct wil6210_vif *vif = ndev_to_vif(ndev);
        struct wil6210_priv *wil = wiphy_to_wil(wiphy);
-       struct wireless_dev *wdev = vif_to_wdev(vif);
+       struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
        enum wmi_key_usage key_usage = wil_detect_key_usage(wdev, pairwise);
        struct wil_sta_info *cs = wil_find_sta_by_key_usage(wil, vif->mid,
                                                            key_usage,
@@ -2071,7 +2069,8 @@ void wil_cfg80211_ap_recovery(struct wil6210_priv *wil)
                key_params.key = vif->gtk;
                key_params.key_len = vif->gtk_len;
                key_params.seq_len = IEEE80211_GCMP_PN_LEN;
-               rc = wil_cfg80211_add_key(wiphy, ndev, -1, vif->gtk_index,
+               rc = wil_cfg80211_add_key(wiphy, vif_to_wdev(vif), -1,
+                                         vif->gtk_index,
                                          false, NULL, &key_params);
                if (rc)
                        wil_err(wil, "vif %d recovery add key failed (%d)\n",
index f7e17994e59a94880dd04517c24e96d3740b0605..0b55d445895f204156e1ba70140e1f63fb383d23 100644 (file)
@@ -2758,11 +2758,11 @@ done:
 }
 
 static s32
-brcmf_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
+brcmf_cfg80211_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                       int link_id, u8 key_idx, bool pairwise,
                       const u8 *mac_addr)
 {
-       struct brcmf_if *ifp = netdev_priv(ndev);
+       struct brcmf_if *ifp = netdev_priv(wdev->netdev);
        struct brcmf_wsec_key *key;
        s32 err;
 
@@ -2796,12 +2796,12 @@ brcmf_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
 }
 
 static s32
-brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
+brcmf_cfg80211_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                       int link_id, u8 key_idx, bool pairwise,
                       const u8 *mac_addr, struct key_params *params)
 {
        struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
-       struct brcmf_if *ifp = netdev_priv(ndev);
+       struct brcmf_if *ifp = netdev_priv(wdev->netdev);
        struct brcmf_pub *drvr = cfg->pub;
        struct brcmf_wsec_key *key;
        s32 val;
@@ -2822,7 +2822,7 @@ brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
        }
 
        if (params->key_len == 0)
-               return brcmf_cfg80211_del_key(wiphy, ndev, -1, key_idx,
+               return brcmf_cfg80211_del_key(wiphy, wdev, -1, key_idx,
                                              pairwise, mac_addr);
 
        if (params->key_len > sizeof(key->data)) {
@@ -2918,7 +2918,7 @@ done:
 }
 
 static s32
-brcmf_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
+brcmf_cfg80211_get_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                       int link_id, u8 key_idx, bool pairwise,
                       const u8 *mac_addr, void *cookie,
                       void (*callback)(void *cookie,
@@ -2926,7 +2926,7 @@ brcmf_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
 {
        struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
        struct key_params params;
-       struct brcmf_if *ifp = netdev_priv(ndev);
+       struct brcmf_if *ifp = netdev_priv(wdev->netdev);
        struct brcmf_cfg80211_profile *profile = &ifp->vif->profile;
        struct brcmf_pub *drvr = cfg->pub;
        struct brcmf_cfg80211_security *sec;
@@ -2976,10 +2976,10 @@ done:
 
 static s32
 brcmf_cfg80211_config_default_mgmt_key(struct wiphy *wiphy,
-                                      struct net_device *ndev, int link_id,
+                                      struct wireless_dev *wdev, int link_id,
                                       u8 key_idx)
 {
-       struct brcmf_if *ifp = netdev_priv(ndev);
+       struct brcmf_if *ifp = netdev_priv(wdev->netdev);
 
        brcmf_dbg(TRACE, "Enter key_idx %d\n", key_idx);
 
index 56a82b26a1e9bb47cbc5dbf963b7324c527ed233..72c92f72469debd54fa89647dcbe94a59f8ac7b0 100644 (file)
@@ -1507,7 +1507,7 @@ static int lbs_cfg_set_default_key(struct wiphy *wiphy,
 }
 
 
-static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
+static int lbs_cfg_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                           int link_id, u8 idx, bool pairwise,
                           const u8 *mac_addr, struct key_params *params)
 {
@@ -1516,7 +1516,7 @@ static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
        u16 key_type;
        int ret = 0;
 
-       if (netdev == priv->mesh_dev)
+       if (wdev->netdev == priv->mesh_dev)
                return -EOPNOTSUPP;
 
        lbs_deb_assoc("add_key: cipher 0x%x, mac_addr %pM\n",
@@ -1568,7 +1568,7 @@ static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
 }
 
 
-static int lbs_cfg_del_key(struct wiphy *wiphy, struct net_device *netdev,
+static int lbs_cfg_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                           int link_id, u8 key_index, bool pairwise,
                           const u8 *mac_addr)
 {
index 71e71a5af453d2240ef0ab75fe3b7da4526adeb5..c9a651bdf8822a8b7c0535b6a51a5b82115241fa 100644 (file)
@@ -141,11 +141,11 @@ static void *mwifiex_cfg80211_get_adapter(struct wiphy *wiphy)
  * CFG802.11 operation handler to delete a network key.
  */
 static int
-mwifiex_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
+mwifiex_cfg80211_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                         int link_id, u8 key_index, bool pairwise,
                         const u8 *mac_addr)
 {
-       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
        static const u8 bc_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
        const u8 *peer_mac = pairwise ? mac_addr : bc_mac;
 
@@ -480,11 +480,11 @@ mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
  * CFG802.11 operation handler to add a network key.
  */
 static int
-mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
+mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                         int link_id, u8 key_index, bool pairwise,
                         const u8 *mac_addr, struct key_params *params)
 {
-       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
        struct mwifiex_wep_key *wep_key;
        static const u8 bc_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
        const u8 *peer_mac = pairwise ? mac_addr : bc_mac;
@@ -518,11 +518,11 @@ mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
  */
 static int
 mwifiex_cfg80211_set_default_mgmt_key(struct wiphy *wiphy,
-                                     struct net_device *netdev,
+                                     struct wireless_dev *wdev,
                                      int link_id,
                                      u8 key_index)
 {
-       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
        struct mwifiex_ds_encrypt_key encrypt_key;
 
        wiphy_dbg(wiphy, "set default mgmt key, key index=%d\n", key_index);
index 21ef341e002b46189721d0b514973c393e74a1a9..3a774cc44b263d92070c5c8829f3f4ce95dcfdfe 100644 (file)
@@ -534,7 +534,7 @@ static int wilc_wfi_cfg_copy_wpa_info(struct wilc_wfi_key *key_info,
        return 0;
 }
 
-static int add_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+static int add_key(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                   u8 key_index, bool pairwise, const u8 *mac_addr,
                   struct key_params *params)
 
@@ -544,7 +544,7 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
        const u8 *tx_mic = NULL;
        u8 mode = WILC_FW_SEC_NO;
        u8 op_mode;
-       struct wilc_vif *vif = netdev_priv(netdev);
+       struct wilc_vif *vif = netdev_priv(wdev->netdev);
        struct wilc_priv *priv = &vif->priv;
        struct wilc_wfi_key *key;
 
@@ -632,19 +632,19 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
                break;
 
        default:
-               netdev_err(netdev, "%s: Unsupported cipher\n", __func__);
+               netdev_err(wdev->netdev, "%s: Unsupported cipher\n", __func__);
                ret = -ENOTSUPP;
        }
 
        return ret;
 }
 
-static int del_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+static int del_key(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                   u8 key_index,
                   bool pairwise,
                   const u8 *mac_addr)
 {
-       struct wilc_vif *vif = netdev_priv(netdev);
+       struct wilc_vif *vif = netdev_priv(wdev->netdev);
        struct wilc_priv *priv = &vif->priv;
 
        if (!pairwise && (key_index == 4 || key_index == 5)) {
@@ -680,12 +680,12 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
        return 0;
 }
 
-static int get_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+static int get_key(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                   u8 key_index, bool pairwise, const u8 *mac_addr,
                   void *cookie,
                   void (*callback)(void *cookie, struct key_params *))
 {
-       struct wilc_vif *vif = netdev_priv(netdev);
+       struct wilc_vif *vif = netdev_priv(wdev->netdev);
        struct wilc_priv *priv = &vif->priv;
        struct  key_params key_params;
 
@@ -725,10 +725,10 @@ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev,
        return 0;
 }
 
-static int set_default_mgmt_key(struct wiphy *wiphy, struct net_device *netdev,
+static int set_default_mgmt_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                int link_id, u8 key_index)
 {
-       struct wilc_vif *vif = netdev_priv(netdev);
+       struct wilc_vif *vif = netdev_priv(wdev->netdev);
 
        return wilc_set_default_mgmt_key_index(vif, key_index);
 }
index 340240847a2f94bebcaa7eae3feea6ba62b39324..9e44c85d2051ce7d48f57466ee9ab7f246f48231 100644 (file)
@@ -532,11 +532,11 @@ qtnf_dump_station(struct wiphy *wiphy, struct wireless_dev *wdev,
        return ret;
 }
 
-static int qtnf_add_key(struct wiphy *wiphy, struct net_device *dev,
+static int qtnf_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                        int link_id, u8 key_index, bool pairwise,
                        const u8 *mac_addr, struct key_params *params)
 {
-       struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
+       struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
        int ret;
 
        ret = qtnf_cmd_send_add_key(vif, key_index, pairwise, mac_addr, params);
@@ -548,11 +548,11 @@ static int qtnf_add_key(struct wiphy *wiphy, struct net_device *dev,
        return ret;
 }
 
-static int qtnf_del_key(struct wiphy *wiphy, struct net_device *dev,
+static int qtnf_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                        int link_id, u8 key_index, bool pairwise,
                        const u8 *mac_addr)
 {
-       struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
+       struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
        int ret;
 
        ret = qtnf_cmd_send_del_key(vif, key_index, pairwise, mac_addr);
@@ -587,10 +587,10 @@ static int qtnf_set_default_key(struct wiphy *wiphy, struct net_device *dev,
 }
 
 static int
-qtnf_set_default_mgmt_key(struct wiphy *wiphy, struct net_device *dev,
+qtnf_set_default_mgmt_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                          int link_id, u8 key_index)
 {
-       struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
+       struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
        int ret;
 
        ret = qtnf_cmd_send_set_default_mgmt_key(vif, key_index);
index 83422c5c8c44ef35d1cda99beea7fcd2a80c4aa0..7c714ef73ea0e3bdedc5e13d8ec81383c48a74f4 100644 (file)
@@ -831,7 +831,7 @@ exit:
        return ret;
 }
 
-static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
+static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                int link_id, u8 key_index, bool pairwise,
                                const u8 *mac_addr, struct key_params *params)
 {
@@ -839,6 +839,7 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
        u32 param_len;
        struct ieee_param *param = NULL;
        int ret = 0;
+       struct net_device *ndev = wdev->netdev;
        struct adapter *padapter = rtw_netdev_priv(ndev);
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
 
@@ -909,7 +910,7 @@ addkey_end:
        return ret;
 }
 
-static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
+static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                int link_id, u8 key_index, bool pairwise,
                                const u8 *mac_addr, void *cookie,
                                void (*callback)(void *cookie,
@@ -918,11 +919,11 @@ static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
        return 0;
 }
 
-static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
+static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                                int link_id, u8 key_index, bool pairwise,
                                const u8 *mac_addr)
 {
-       struct adapter *padapter = rtw_netdev_priv(ndev);
+       struct adapter *padapter = rtw_netdev_priv(wdev->netdev);
        struct security_priv *psecuritypriv = &padapter->securitypriv;
 
        if (key_index == psecuritypriv->dot11PrivacyKeyIndex) {
index 8a63dea500adf531a5677460f24a97e3595a9237..8cd870ece3519e8e3d7c8cd2d0de1df60d9c24b5 100644 (file)
@@ -4924,24 +4924,24 @@ struct cfg80211_ops {
                                 struct wireless_dev *wdev,
                                 unsigned int link_id);
 
-       int     (*add_key)(struct wiphy *wiphy, struct net_device *netdev,
+       int     (*add_key)(struct wiphy *wiphy, struct wireless_dev *wdev,
                           int link_id, u8 key_index, bool pairwise,
                           const u8 *mac_addr, struct key_params *params);
-       int     (*get_key)(struct wiphy *wiphy, struct net_device *netdev,
+       int     (*get_key)(struct wiphy *wiphy, struct wireless_dev *wdev,
                           int link_id, u8 key_index, bool pairwise,
                           const u8 *mac_addr, void *cookie,
                           void (*callback)(void *cookie, struct key_params*));
-       int     (*del_key)(struct wiphy *wiphy, struct net_device *netdev,
+       int     (*del_key)(struct wiphy *wiphy, struct wireless_dev *wdev,
                           int link_id, u8 key_index, bool pairwise,
                           const u8 *mac_addr);
        int     (*set_default_key)(struct wiphy *wiphy,
                                   struct net_device *netdev, int link_id,
                                   u8 key_index, bool unicast, bool multicast);
        int     (*set_default_mgmt_key)(struct wiphy *wiphy,
-                                       struct net_device *netdev, int link_id,
+                                       struct wireless_dev *wdev, int link_id,
                                        u8 key_index);
        int     (*set_default_beacon_key)(struct wiphy *wiphy,
-                                         struct net_device *netdev,
+                                         struct wireless_dev *wdev,
                                          int link_id,
                                          u8 key_index);
 
index 0c4979526c9103664344a90281ea37ffa5d9e606..ee64ac8e0f61d1f5251eeb65ca83242af098aef3 100644 (file)
@@ -608,11 +608,11 @@ static int ieee80211_set_tx(struct ieee80211_sub_if_data *sdata,
        return ret;
 }
 
-static int ieee80211_add_key(struct wiphy *wiphy, struct net_device *dev,
+static int ieee80211_add_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                             int link_id, u8 key_idx, bool pairwise,
                             const u8 *mac_addr, struct key_params *params)
 {
-       struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+       struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
        struct ieee80211_link_data *link =
                ieee80211_link_or_deflink(sdata, link_id, false);
        struct ieee80211_local *local = sdata->local;
@@ -790,11 +790,11 @@ ieee80211_lookup_key(struct ieee80211_sub_if_data *sdata, int link_id,
        return NULL;
 }
 
-static int ieee80211_del_key(struct wiphy *wiphy, struct net_device *dev,
+static int ieee80211_del_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                             int link_id, u8 key_idx, bool pairwise,
                             const u8 *mac_addr)
 {
-       struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+       struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
        struct ieee80211_local *local = sdata->local;
        struct ieee80211_key *key;
 
@@ -809,7 +809,7 @@ static int ieee80211_del_key(struct wiphy *wiphy, struct net_device *dev,
        return 0;
 }
 
-static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
+static int ieee80211_get_key(struct wiphy *wiphy, struct wireless_dev *wdev,
                             int link_id, u8 key_idx, bool pairwise,
                             const u8 *mac_addr, void *cookie,
                             void (*callback)(void *cookie,
@@ -825,7 +825,7 @@ static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
        int err = -ENOENT;
        struct ieee80211_key_seq kseq = {};
 
-       sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+       sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
 
        rcu_read_lock();
 
@@ -929,10 +929,10 @@ static int ieee80211_config_default_key(struct wiphy *wiphy,
 }
 
 static int ieee80211_config_default_mgmt_key(struct wiphy *wiphy,
-                                            struct net_device *dev,
+                                            struct wireless_dev *wdev,
                                             int link_id, u8 key_idx)
 {
-       struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+       struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
        struct ieee80211_link_data *link =
                ieee80211_link_or_deflink(sdata, link_id, true);
 
@@ -945,10 +945,10 @@ static int ieee80211_config_default_mgmt_key(struct wiphy *wiphy,
 }
 
 static int ieee80211_config_default_beacon_key(struct wiphy *wiphy,
-                                              struct net_device *dev,
+                                              struct wireless_dev *wdev,
                                               int link_id, u8 key_idx)
 {
-       struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+       struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
        struct ieee80211_link_data *link =
                ieee80211_link_or_deflink(sdata, link_id, true);
 
index a7024af39b4066a43efc98aca8d2d508adcdb070..b1d748bdb504ebb37955b07794d2bc7cc50bfa57 100644 (file)
@@ -3,7 +3,7 @@
  * Some IBSS support code for cfg80211.
  *
  * Copyright 2009      Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2020-2024 Intel Corporation
+ * Copyright (C) 2020-2026 Intel Corporation
  */
 
 #include <linux/etherdevice.h>
@@ -172,7 +172,7 @@ void cfg80211_clear_ibss(struct net_device *dev, bool nowext)
         */
        if (rdev->ops->del_key)
                for (i = 0; i < 6; i++)
-                       rdev_del_key(rdev, dev, -1, i, false, NULL);
+                       rdev_del_key(rdev, wdev, -1, i, false, NULL);
 
        if (wdev->u.ibss.current_bss) {
                cfg80211_unhold_bss(wdev->u.ibss.current_bss);
index 26cf29c8867b9bc01af7d1dfb94fa0b09490cc33..2225f5d0b124d4ae8bd2da637ae9d9c7b747325e 100644 (file)
@@ -4960,7 +4960,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
 {
        struct cfg80211_registered_device *rdev = info->user_ptr[0];
        int err;
-       struct net_device *dev = info->user_ptr[1];
+       struct wireless_dev *wdev = info->user_ptr[1];
        u8 key_idx = 0;
        const u8 *mac_addr = NULL;
        bool pairwise;
@@ -4971,7 +4971,6 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
        struct sk_buff *msg;
        bool bigtk_support = false;
        int link_id = nl80211_link_id_or_invalid(info->attrs);
-       struct wireless_dev *wdev = dev->ieee80211_ptr;
 
        if (wiphy_ext_feature_isset(&rdev->wiphy,
                                    NL80211_EXT_FEATURE_BEACON_PROTECTION))
@@ -5023,7 +5022,10 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
        cookie.msg = msg;
        cookie.idx = key_idx;
 
-       if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex) ||
+       if ((wdev->netdev &&
+            nla_put_u32(msg, NL80211_ATTR_IFINDEX, wdev->netdev->ifindex)) ||
+           nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
+                             NL80211_ATTR_PAD) ||
            nla_put_u8(msg, NL80211_ATTR_KEY_IDX, key_idx))
                goto nla_put_failure;
        if (mac_addr &&
@@ -5034,7 +5036,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info)
        if (err)
                goto free_msg;
 
-       err = rdev_get_key(rdev, dev, link_id, key_idx, pairwise, mac_addr,
+       err = rdev_get_key(rdev, wdev, link_id, key_idx, pairwise, mac_addr,
                           &cookie, get_key_callback);
 
        if (err)
@@ -5058,9 +5060,8 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
        struct cfg80211_registered_device *rdev = info->user_ptr[0];
        struct key_parse key;
        int err;
-       struct net_device *dev = info->user_ptr[1];
+       struct wireless_dev *wdev = info->user_ptr[1];
        int link_id = nl80211_link_id_or_invalid(info->attrs);
-       struct wireless_dev *wdev = dev->ieee80211_ptr;
 
        err = nl80211_parse_key(info, &key);
        if (err)
@@ -5080,6 +5081,9 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
                if (!rdev->ops->set_default_key)
                        return -EOPNOTSUPP;
 
+               if (!wdev->netdev)
+                       return -EINVAL;
+
                err = nl80211_key_allowed(wdev);
                if (err)
                        return err;
@@ -5088,7 +5092,7 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
                if (err)
                        return err;
 
-               err = rdev_set_default_key(rdev, dev, link_id, key.idx,
+               err = rdev_set_default_key(rdev, wdev->netdev, link_id, key.idx,
                                           key.def_uni, key.def_multi);
 
                if (err)
@@ -5113,7 +5117,7 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
                if (err)
                        return err;
 
-               err = rdev_set_default_mgmt_key(rdev, dev, link_id, key.idx);
+               err = rdev_set_default_mgmt_key(rdev, wdev, link_id, key.idx);
                if (err)
                        return err;
 
@@ -5136,7 +5140,8 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
                if (err)
                        return err;
 
-               return rdev_set_default_beacon_key(rdev, dev, link_id, key.idx);
+               return rdev_set_default_beacon_key(rdev, wdev, link_id,
+                                                  key.idx);
        } else if (key.p.mode == NL80211_KEY_SET_TX &&
                   wiphy_ext_feature_isset(&rdev->wiphy,
                                           NL80211_EXT_FEATURE_EXT_KEY_ID)) {
@@ -5152,7 +5157,7 @@ static int nl80211_set_key(struct sk_buff *skb, struct genl_info *info)
                if (err)
                        return err;
 
-               return rdev_add_key(rdev, dev, link_id, key.idx,
+               return rdev_add_key(rdev, wdev, link_id, key.idx,
                                    NL80211_KEYTYPE_PAIRWISE,
                                    mac_addr, &key.p);
        }
@@ -5164,11 +5169,10 @@ static int nl80211_new_key(struct sk_buff *skb, struct genl_info *info)
 {
        struct cfg80211_registered_device *rdev = info->user_ptr[0];
        int err;
-       struct net_device *dev = info->user_ptr[1];
+       struct wireless_dev *wdev = info->user_ptr[1];
        struct key_parse key;
        const u8 *mac_addr = NULL;
        int link_id = nl80211_link_id_or_invalid(info->attrs);
-       struct wireless_dev *wdev = dev->ieee80211_ptr;
 
        err = nl80211_parse_key(info, &key);
        if (err)
@@ -5219,7 +5223,7 @@ static int nl80211_new_key(struct sk_buff *skb, struct genl_info *info)
                                key.type == NL80211_KEYTYPE_PAIRWISE);
 
        if (!err) {
-               err = rdev_add_key(rdev, dev, link_id, key.idx,
+               err = rdev_add_key(rdev, wdev, link_id, key.idx,
                                   key.type == NL80211_KEYTYPE_PAIRWISE,
                                    mac_addr, &key.p);
                if (err)
@@ -5233,11 +5237,10 @@ static int nl80211_del_key(struct sk_buff *skb, struct genl_info *info)
 {
        struct cfg80211_registered_device *rdev = info->user_ptr[0];
        int err;
-       struct net_device *dev = info->user_ptr[1];
+       struct wireless_dev *wdev = info->user_ptr[1];
        u8 *mac_addr = NULL;
        struct key_parse key;
        int link_id = nl80211_link_id_or_invalid(info->attrs);
-       struct wireless_dev *wdev = dev->ieee80211_ptr;
 
        err = nl80211_parse_key(info, &key);
        if (err)
@@ -5276,7 +5279,7 @@ static int nl80211_del_key(struct sk_buff *skb, struct genl_info *info)
                                key.type == NL80211_KEYTYPE_PAIRWISE);
 
        if (!err)
-               err = rdev_del_key(rdev, dev, link_id, key.idx,
+               err = rdev_del_key(rdev, wdev, link_id, key.idx,
                                   key.type == NL80211_KEYTYPE_PAIRWISE,
                                   mac_addr);
 
@@ -18071,6 +18074,9 @@ nl80211_epcs_cfg(struct sk_buff *skb, struct genl_info *info)
                 NL80211_FLAG_CLEAR_SKB)                \
        SELECTOR(__sel, WDEV_UP,                        \
                 NL80211_FLAG_NEED_WDEV_UP)             \
+       SELECTOR(__sel, WDEV_UP_CLEAR,                  \
+                NL80211_FLAG_NEED_WDEV_UP |            \
+                NL80211_FLAG_CLEAR_SKB)                \
        SELECTOR(__sel, WDEV_UP_LINK,                   \
                 NL80211_FLAG_NEED_WDEV_UP |            \
                 NL80211_FLAG_MLO_VALID_LINK_ID)        \
@@ -18403,7 +18409,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
                .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = nl80211_get_key,
                .flags = GENL_UNS_ADMIN_PERM,
-               .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
+               .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
        },
        {
                .cmd = NL80211_CMD_SET_KEY,
@@ -18411,7 +18417,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
                .doit = nl80211_set_key,
                .flags = GENL_UNS_ADMIN_PERM,
                /* cannot use NL80211_FLAG_MLO_VALID_LINK_ID, depends on key */
-               .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+               .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP |
                                         NL80211_FLAG_CLEAR_SKB),
        },
        {
@@ -18419,7 +18425,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
                .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = nl80211_new_key,
                .flags = GENL_UNS_ADMIN_PERM,
-               .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+               .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP |
                                         NL80211_FLAG_CLEAR_SKB),
        },
        {
@@ -18427,7 +18433,7 @@ static const struct genl_small_ops nl80211_small_ops[] = {
                .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = nl80211_del_key,
                .flags = GENL_UNS_ADMIN_PERM,
-               .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
+               .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
        },
        {
                .cmd = NL80211_CMD_SET_BEACON,
index a8f1e7ddc0c0db48e75b0e71a0441c419ab3373f..2bad8b60b7c97504f861d565da39bf61013c6eca 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Portions of this file
  * Copyright(c) 2016-2017 Intel Deutschland GmbH
- * Copyright (C) 2018, 2021-2025 Intel Corporation
+ * Copyright (C) 2018, 2021-2026 Intel Corporation
  */
 #ifndef __CFG80211_RDEV_OPS
 #define __CFG80211_RDEV_OPS
@@ -77,42 +77,42 @@ rdev_change_virtual_intf(struct cfg80211_registered_device *rdev,
 }
 
 static inline int rdev_add_key(struct cfg80211_registered_device *rdev,
-                              struct net_device *netdev, int link_id,
+                              struct wireless_dev *wdev, int link_id,
                               u8 key_index, bool pairwise, const u8 *mac_addr,
                               struct key_params *params)
 {
        int ret;
-       trace_rdev_add_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
+       trace_rdev_add_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,
                           mac_addr, params->mode);
-       ret = rdev->ops->add_key(&rdev->wiphy, netdev, link_id, key_index,
+       ret = rdev->ops->add_key(&rdev->wiphy, wdev, link_id, key_index,
                                  pairwise, mac_addr, params);
        trace_rdev_return_int(&rdev->wiphy, ret);
        return ret;
 }
 
 static inline int
-rdev_get_key(struct cfg80211_registered_device *rdev, struct net_device *netdev,
+rdev_get_key(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev,
             int link_id, u8 key_index, bool pairwise, const u8 *mac_addr,
             void *cookie,
             void (*callback)(void *cookie, struct key_params*))
 {
        int ret;
-       trace_rdev_get_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
+       trace_rdev_get_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,
                           mac_addr);
-       ret = rdev->ops->get_key(&rdev->wiphy, netdev, link_id, key_index,
+       ret = rdev->ops->get_key(&rdev->wiphy, wdev, link_id, key_index,
                                  pairwise, mac_addr, cookie, callback);
        trace_rdev_return_int(&rdev->wiphy, ret);
        return ret;
 }
 
 static inline int rdev_del_key(struct cfg80211_registered_device *rdev,
-                              struct net_device *netdev, int link_id,
+                              struct wireless_dev *wdev, int link_id,
                               u8 key_index, bool pairwise, const u8 *mac_addr)
 {
        int ret;
-       trace_rdev_del_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
+       trace_rdev_del_key(&rdev->wiphy, wdev, link_id, key_index, pairwise,
                           mac_addr);
-       ret = rdev->ops->del_key(&rdev->wiphy, netdev, link_id, key_index,
+       ret = rdev->ops->del_key(&rdev->wiphy, wdev, link_id, key_index,
                                  pairwise, mac_addr);
        trace_rdev_return_int(&rdev->wiphy, ret);
        return ret;
@@ -134,12 +134,12 @@ rdev_set_default_key(struct cfg80211_registered_device *rdev,
 
 static inline int
 rdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev,
-                         struct net_device *netdev, int link_id, u8 key_index)
+                         struct wireless_dev *wdev, int link_id, u8 key_index)
 {
        int ret;
-       trace_rdev_set_default_mgmt_key(&rdev->wiphy, netdev, link_id,
+       trace_rdev_set_default_mgmt_key(&rdev->wiphy, wdev, link_id,
                                        key_index);
-       ret = rdev->ops->set_default_mgmt_key(&rdev->wiphy, netdev, link_id,
+       ret = rdev->ops->set_default_mgmt_key(&rdev->wiphy, wdev, link_id,
                                               key_index);
        trace_rdev_return_int(&rdev->wiphy, ret);
        return ret;
@@ -147,14 +147,14 @@ rdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev,
 
 static inline int
 rdev_set_default_beacon_key(struct cfg80211_registered_device *rdev,
-                           struct net_device *netdev, int link_id,
+                           struct wireless_dev *wdev, int link_id,
                            u8 key_index)
 {
        int ret;
 
-       trace_rdev_set_default_beacon_key(&rdev->wiphy, netdev, link_id,
+       trace_rdev_set_default_beacon_key(&rdev->wiphy, wdev, link_id,
                                          key_index);
-       ret = rdev->ops->set_default_beacon_key(&rdev->wiphy, netdev, link_id,
+       ret = rdev->ops->set_default_beacon_key(&rdev->wiphy, wdev, link_id,
                                                 key_index);
        trace_rdev_return_int(&rdev->wiphy, ret);
        return ret;
index 5b21432450d5b8d02991eefcb78f4f1646f4a5af..86e2ccaa678ce589320e3189077b0a019e34cc74 100644 (file)
@@ -5,7 +5,7 @@
  * (for nl80211's connect() and wext)
  *
  * Copyright 2009      Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2009, 2020, 2022-2025 Intel Corporation. All rights reserved.
+ * Copyright (C) 2009, 2020, 2022-2026 Intel Corporation. All rights reserved.
  * Copyright 2017      Intel Deutschland GmbH
  */
 
@@ -1386,7 +1386,7 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
                            NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT))
                        max_key_idx = 7;
                for (i = 0; i <= max_key_idx; i++)
-                       rdev_del_key(rdev, dev, -1, i, false, NULL);
+                       rdev_del_key(rdev, wdev, -1, i, false, NULL);
        }
 
        rdev_set_qos_map(rdev, dev, NULL);
index 8ab78a899f57869b8f8da2c25e5d49a0d7a9e332..af23f4fca90a2b158fcc503d2f12e410dca94513 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Portions of this file
  * Copyright(c) 2016-2017 Intel Deutschland GmbH
- * Copyright (C) 2018, 2020-2025 Intel Corporation
+ * Copyright (C) 2018, 2020-2026 Intel Corporation
  */
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM cfg80211
@@ -546,12 +546,12 @@ TRACE_EVENT(rdev_change_virtual_intf,
 );
 
 DECLARE_EVENT_CLASS(key_handle,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index, bool pairwise, const u8 *mac_addr),
-       TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr),
+       TP_ARGS(wiphy, wdev, link_id, key_index, pairwise, mac_addr),
        TP_STRUCT__entry(
                WIPHY_ENTRY
-               NETDEV_ENTRY
+               WDEV_ENTRY
                MAC_ENTRY(mac_addr)
                __field(int, link_id)
                __field(u8, key_index)
@@ -559,38 +559,38 @@ DECLARE_EVENT_CLASS(key_handle,
        ),
        TP_fast_assign(
                WIPHY_ASSIGN;
-               NETDEV_ASSIGN;
+               WDEV_ASSIGN;
                MAC_ASSIGN(mac_addr, mac_addr);
                __entry->link_id = link_id;
                __entry->key_index = key_index;
                __entry->pairwise = pairwise;
        ),
-       TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+       TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %d, "
                  "key_index: %u, pairwise: %s, mac addr: %pM",
-                 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+                 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id,
                  __entry->key_index, BOOL_TO_STR(__entry->pairwise),
                  __entry->mac_addr)
 );
 
 DEFINE_EVENT(key_handle, rdev_get_key,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index, bool pairwise, const u8 *mac_addr),
-       TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
+       TP_ARGS(wiphy, wdev, link_id, key_index, pairwise, mac_addr)
 );
 
 DEFINE_EVENT(key_handle, rdev_del_key,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index, bool pairwise, const u8 *mac_addr),
-       TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
+       TP_ARGS(wiphy, wdev, link_id, key_index, pairwise, mac_addr)
 );
 
 TRACE_EVENT(rdev_add_key,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode),
-       TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode),
+       TP_ARGS(wiphy, wdev, link_id, key_index, pairwise, mac_addr, mode),
        TP_STRUCT__entry(
                WIPHY_ENTRY
-               NETDEV_ENTRY
+               WDEV_ENTRY
                MAC_ENTRY(mac_addr)
                __field(int, link_id)
                __field(u8, key_index)
@@ -599,17 +599,17 @@ TRACE_EVENT(rdev_add_key,
        ),
        TP_fast_assign(
                WIPHY_ASSIGN;
-               NETDEV_ASSIGN;
+               WDEV_ASSIGN;
                MAC_ASSIGN(mac_addr, mac_addr);
                __entry->link_id = link_id;
                __entry->key_index = key_index;
                __entry->pairwise = pairwise;
                __entry->mode = mode;
        ),
-       TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+       TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %d, "
                  "key_index: %u, mode: %u, pairwise: %s, "
                  "mac addr: %pM",
-                 WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+                 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id,
                  __entry->key_index, __entry->mode,
                  BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
 );
@@ -642,45 +642,45 @@ TRACE_EVENT(rdev_set_default_key,
 );
 
 TRACE_EVENT(rdev_set_default_mgmt_key,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index),
-       TP_ARGS(wiphy, netdev, link_id, key_index),
+       TP_ARGS(wiphy, wdev, link_id, key_index),
        TP_STRUCT__entry(
                WIPHY_ENTRY
-               NETDEV_ENTRY
+               WDEV_ENTRY
                __field(int, link_id)
                __field(u8, key_index)
        ),
        TP_fast_assign(
                WIPHY_ASSIGN;
-               NETDEV_ASSIGN;
+               WDEV_ASSIGN;
                __entry->link_id = link_id;
                __entry->key_index = key_index;
        ),
-       TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
-                 "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
-                 __entry->link_id, __entry->key_index)
+       TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %d, key index: %u",
+                 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id,
+                 __entry->key_index)
 );
 
 TRACE_EVENT(rdev_set_default_beacon_key,
-       TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+       TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int link_id,
                 u8 key_index),
-       TP_ARGS(wiphy, netdev, link_id, key_index),
+       TP_ARGS(wiphy, wdev, link_id, key_index),
        TP_STRUCT__entry(
                WIPHY_ENTRY
-               NETDEV_ENTRY
+               WDEV_ENTRY
                __field(int, link_id)
                __field(u8, key_index)
        ),
        TP_fast_assign(
                WIPHY_ASSIGN;
-               NETDEV_ASSIGN;
+               WDEV_ASSIGN;
                __entry->link_id = link_id;
                __entry->key_index = key_index;
        ),
-       TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
-                 "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
-                 __entry->link_id, __entry->key_index)
+       TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %d, key index: %u",
+                 WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id,
+                 __entry->key_index)
 );
 
 TRACE_EVENT(rdev_start_ap,
index 702904048d5abfa6936b0f04a308d8db7207e268..0a0cea018fc54a1bc974a87cac14492523624613 100644 (file)
@@ -1095,7 +1095,7 @@ void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
        for (i = 0; i < 4; i++) {
                if (!wdev->connect_keys->params[i].cipher)
                        continue;
-               if (rdev_add_key(rdev, dev, -1, i, false, NULL,
+               if (rdev_add_key(rdev, wdev, -1, i, false, NULL,
                                 &wdev->connect_keys->params[i])) {
                        netdev_err(dev, "failed to set key %d\n", i);
                        continue;
index 98a4f4c7970dab09f43a8ef65c46de19d01db52e..22d9d9bae8f58ae03992acb1cb9ca07955d8003d 100644 (file)
@@ -457,7 +457,7 @@ static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
                            !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
                                err = -ENOENT;
                        else
-                               err = rdev_del_key(rdev, dev, -1, idx, pairwise,
+                               err = rdev_del_key(rdev, wdev, -1, idx, pairwise,
                                                   addr);
                }
                wdev->wext.connect.privacy = false;
@@ -496,7 +496,7 @@ static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
        if (wdev->connected ||
            (wdev->iftype == NL80211_IFTYPE_ADHOC &&
             wdev->u.ibss.current_bss))
-               err = rdev_add_key(rdev, dev, -1, idx, pairwise, addr, params);
+               err = rdev_add_key(rdev, wdev, -1, idx, pairwise, addr, params);
        else if (params->cipher != WLAN_CIPHER_SUITE_WEP40 &&
                 params->cipher != WLAN_CIPHER_SUITE_WEP104)
                return -EINVAL;
@@ -549,7 +549,7 @@ static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
                if (wdev->connected ||
                    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
                     wdev->u.ibss.current_bss))
-                       err = rdev_set_default_mgmt_key(rdev, dev, -1, idx);
+                       err = rdev_set_default_mgmt_key(rdev, wdev, -1, idx);
                if (!err)
                        wdev->wext.default_mgmt_key = idx;
                return err;