]> git.ipfire.org Git - thirdparty/hostap.git/commit
Process QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH after NL80211_CMD_ROAM
authorPurushottam Kushwaha <pkushwah@codeaurora.org>
Fri, 27 Nov 2020 10:23:33 +0000 (15:53 +0530)
committerJouni Malinen <j@w1.fi>
Mon, 21 Dec 2020 20:57:42 +0000 (22:57 +0200)
commit74818ca63f7ec9f9ad7c588772172393c7271b1a
tree12e1d5f53b508a2f0ab41bc313dcac7eaf1ffd30
parentb4a41abad4821223c39b5fbb236d55ac99d60df1
Process QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH after NL80211_CMD_ROAM

NL80211_CMD_ROAM indication is scheduled via a kernel work queue, while
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH is a vendor event from the
driver. Thus, a race condition can exist wherein the vendor event is
received prior to the NL80211_CMD_ROAM indication.

The processing of this vendor event depends on the NL80211_CMD_ROAM
indication to update the roamed BSS/BSSID information and thus the out
of sequence processing of these events would result in not updating the
right BSS information.

This commit adds a workaround to hold the pending
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH event for up to 100 ms in
case NL80211_CMD_ROAM is not received first.

Signed-off-by: Purushottam Kushwaha <pkushwah@codeaurora.org>
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211.h
src/drivers/driver_nl80211_event.c