From: Ping-Ke Shih <pkshih@realtek.com>
To: Martin Kaistra <martin.kaistra@linutronix.de>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Cc: Jes Sorensen <Jes.Sorensen@gmail.com>,
Kalle Valo <kvalo@kernel.org>,
Bitterblue Smith <rtl8821cerfe2@gmail.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Zenm Chen <zenmchen@gmail.com>
Subject: RE: [PATCH v2 19/21] wifi: rtl8xxxu: add hw crypto support for AP mode
Date: Fri, 12 Jan 2024 06:52:24 +0000 [thread overview]
Message-ID: <92fa5949e8094739883e665abb23ac01@realtek.com> (raw)
In-Reply-To: <20231221164353.603258-20-martin.kaistra@linutronix.de>
Hi Martin,
> -----Original Message-----
> From: Martin Kaistra <martin.kaistra@linutronix.de>
> Sent: Friday, December 22, 2023 12:44 AM
> To: linux-wireless@vger.kernel.org
> Cc: Jes Sorensen <Jes.Sorensen@gmail.com>; Kalle Valo <kvalo@kernel.org>; Ping-Ke Shih
> <pkshih@realtek.com>; Bitterblue Smith <rtl8821cerfe2@gmail.com>; Sebastian Andrzej Siewior
> <bigeasy@linutronix.de>
> Subject: [PATCH v2 19/21] wifi: rtl8xxxu: add hw crypto support for AP mode
>
[...]
Zenm reported [1] his RTL8192EU and RTL8192FU don't work in station mode,
and cause is this patch. Please try if you can reproduce the symptom, and
apply my suggestion to see if help.
[1] https://lore.kernel.org/linux-wireless/20240112045104.12282-1-zenmchen@gmail.com/T/#me0940f522249becf49f25bc281f1992c523673f6
>
> +static int rtl8xxxu_get_free_sec_cam(struct ieee80211_hw *hw)
> +{
> + struct rtl8xxxu_priv *priv = hw->priv;
We need to reserve entries 0~3 for keys that aren't pairwise key.
> +
> + return find_first_zero_bit(priv->cam_map, priv->fops->max_sec_cam_num);
> +}
> +
> static int rtl8xxxu_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
> struct ieee80211_vif *vif,
> struct ieee80211_sta *sta,
> struct ieee80211_key_conf *key)
> {
> + struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv;
> struct rtl8xxxu_priv *priv = hw->priv;
> struct device *dev = &priv->udev->dev;
> u8 mac_addr[ETH_ALEN];
[...]
> @@ -6899,16 +6915,28 @@ static int rtl8xxxu_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>
> switch (cmd) {
> case SET_KEY:
> - key->hw_key_idx = key->keyidx;
> +
> + retval = rtl8xxxu_get_free_sec_cam(hw);
> + if (retval < 0)
> + return -EOPNOTSUPP;
> +
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
key->hw_key_idx = retval;
else
key->hw_key_idx = key->keyidx;
> + key->hw_key_idx = retval;
> +
> + if (vif->type == NL80211_IFTYPE_AP && !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
> + rtlvif->hw_key_idx = key->hw_key_idx;
> +
> key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
> rtl8xxxu_cam_write(priv, key, mac_addr);
> + set_bit(key->hw_key_idx, priv->cam_map);
> retval = 0;
> break;
> case DISABLE_KEY:
> rtl8xxxu_write32(priv, REG_CAM_WRITE, 0x00000000);
> val32 = CAM_CMD_POLLING | CAM_CMD_WRITE |
> - key->keyidx << CAM_CMD_KEY_SHIFT;
> + key->hw_key_idx << CAM_CMD_KEY_SHIFT;
> rtl8xxxu_write32(priv, REG_CAM_CMD, val32);
> + rtlvif->hw_key_idx = 0xff;
> + clear_bit(key->hw_key_idx, priv->cam_map);
Shouldn't swap these two statements? I missed that during reviewing.
> retval = 0;
> break;
> default:
> --
> 2.39.2
next prev parent reply other threads:[~2024-01-12 6:52 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-21 16:43 [PATCH v2 00/21] wifi: rtl8xxxu: Add concurrent mode for 8188f Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 01/21] wifi: rtl8xxxu: remove assignment of priv->vif in rtl8xxxu_bss_info_changed() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 02/21] wifi: rtl8xxxu: prepare supporting two virtual interfaces Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 03/21] wifi: rtl8xxxu: support setting linktype for both interfaces Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 04/21] wifi: rtl8xxxu: 8188e: convert usage of priv->vif to priv->vifs[0] Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 05/21] wifi: rtl8xxxu: support setting mac address register for both interfaces Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 06/21] wifi: rtl8xxxu: extend wifi connected check to " Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 07/21] wifi: rtl8xxxu: extend check for matching bssid " Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 08/21] wifi: rtl8xxxu: don't parse CFO, if both interfaces are connected in STA mode Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 09/21] wifi: rtl8xxxu: support setting bssid register for multiple interfaces Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 10/21] wifi: rtl8xxxu: support multiple interfaces in set_aifs() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 11/21] wifi: rtl8xxxu: support multiple interfaces in update_beacon_work_callback() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 12/21] wifi: rtl8xxxu: support multiple interfaces in configure_filter() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 13/21] wifi: rtl8xxxu: support multiple interfaces in watchdog_callback() Martin Kaistra
[not found] ` <CAKFoaw3o-LkqADNvfE0TXmvr8_LK19mpVQtUZ66CWS=AN5AkJQ@mail.gmail.com>
2023-12-22 1:45 ` Ping-Ke Shih
2023-12-22 8:05 ` Martin Kaistra
2023-12-22 8:25 ` Martin Kaistra
2023-12-22 8:59 ` Ping-Ke Shih
2023-12-22 9:10 ` Martin Kaistra
2023-12-22 10:12 ` Ping-Ke Shih
2023-12-21 16:43 ` [PATCH v2 14/21] wifi: rtl8xxxu: support multiple interfaces in {add,remove}_interface() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 15/21] wifi: rtl8xxxu: support multiple interfaces in bss_info_changed() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 16/21] wifi: rtl8xxxu: support multiple interface in start_ap() Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 17/21] wifi: rtl8xxxu: add macids for STA mode Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 18/21] wifi: rtl8xxxu: remove obsolete priv->vif Martin Kaistra
2023-12-21 16:43 ` [PATCH v2 19/21] wifi: rtl8xxxu: add hw crypto support for AP mode Martin Kaistra
2024-01-12 6:52 ` Ping-Ke Shih [this message]
2024-01-15 13:12 ` Martin Kaistra
2024-01-16 1:25 ` Ping-Ke Shih
2023-12-21 16:43 ` [PATCH v2 20/21] wifi: rtl8xxxu: make supporting AP mode only on port 0 transparent Martin Kaistra
2023-12-22 1:54 ` Ping-Ke Shih
2023-12-22 7:49 ` Martin Kaistra
2023-12-22 7:54 ` Ping-Ke Shih
2023-12-21 16:43 ` [PATCH v2 21/21] wifi: rtl8xxxu: declare concurrent mode support for 8188f Martin Kaistra
[not found] ` <CAKFoaw2b3ZB9u+jZ0gCCSrxXr1Viq3-3jsvKAgrpwDxvufYydQ@mail.gmail.com>
2023-12-22 2:02 ` [PATCH v2 00/21] wifi: rtl8xxxu: Add concurrent mode " Ping-Ke Shih
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=92fa5949e8094739883e665abb23ac01@realtek.com \
--to=pkshih@realtek.com \
--cc=Jes.Sorensen@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=kvalo@kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=martin.kaistra@linutronix.de \
--cc=rtl8821cerfe2@gmail.com \
--cc=zenmchen@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is 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.