qcacld-3.0: Set wdev for vendor event HANG_REASON_INDEX

Supplicant delivers the HANG event via HIDL for STA
and via a legacy socket interface for SAP standalone case.
As per current supplicant implementation, wdev_id only matters
when the HANG event gets processed via HIDL.

Currently, for STA interface, host sends wdev as NULL to
cfg80211_vendor_event_alloc, this allows userspace to
process nl_cmd for QCA_NL80211_VENDOR_SUBCMD_HANG_REASON_INDEX
event with the 1st interface which is p2p in supplicant instead
of WLAN interface.

Set wdev with the proper value for STA interface to avoid processing
nl_cmd with P2P interface by userspace.

Change-Id: If3c1b2e11daf682a6ef535014738f4b2a2b5d009
CRs-Fixed: 2580359
This commit is contained in:
Abhinav Kumar
2019-11-22 12:19:22 +05:30
committed by nshrivas
parent 2b777b2f25
commit cab7253af0

View File

@@ -1056,6 +1056,8 @@ int wlan_hdd_send_hang_reason_event(struct hdd_context *hdd_ctx,
{
struct sk_buff *vendor_event;
enum qca_wlan_vendor_hang_reason hang_reason;
struct hdd_adapter *sta_adapter;
struct wireless_dev *wdev = NULL;
hdd_enter();
@@ -1064,8 +1066,12 @@ int wlan_hdd_send_hang_reason_event(struct hdd_context *hdd_ctx,
return -EINVAL;
}
sta_adapter = hdd_get_adapter(hdd_ctx, QDF_STA_MODE);
if (sta_adapter)
wdev = &(sta_adapter->wdev);
vendor_event = cfg80211_vendor_event_alloc(hdd_ctx->wiphy,
NULL,
wdev,
sizeof(uint32_t),
HANG_REASON_INDEX,
GFP_KERNEL);