diff options
| author | Service qcabuildsw <qcabuildsw@localhost> | 2016-10-28 10:23:37 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-10-28 10:23:37 -0700 |
| commit | 1189937facb171c5c3be6f9a3fb85685a85b1dc7 (patch) | |
| tree | 449c33e8a6925ca6eeaaeb3af60fbd48778b491e /core | |
| parent | 5a2556910393f433b2d13c5f30e4600e289bf9b3 (diff) | |
| parent | 7d845118f8c1c50eea768b38b04cac583f2a3533 (diff) | |
Merge "qcacld-3.0: wma: fix same peer created again issue" into wlan-cld3.driver.lnx.1.1-dev
Diffstat (limited to 'core')
| -rw-r--r-- | core/wma/src/wma_dev_if.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 57f3ff49241c..55e33bb22839 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -3412,6 +3412,20 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta) WMA_LOGE("%s: Peer already exists, Deleted peer with peer_addr %pM", __func__, add_sta->staMac); } + /* The code above only checks the peer existence on its own vdev. + * Need to check whether the peer exists on other vDevs because firmware + * can't create the peer if the peer with same MAC address already + * exists on the pDev. As this peer belongs to other vDevs, just return + * here. + */ + peer = ol_txrx_find_peer_by_addr(pdev, add_sta->staMac, &peer_id); + if (peer) { + WMA_LOGE("%s: My vdev:%d, but Peer exists on other vdev with " + "peer_addr %pM and peer_id %d", + __func__, vdev->vdev_id, add_sta->staMac, peer_id); + add_sta->status = QDF_STATUS_E_FAILURE; + goto send_rsp; + } status = wma_create_peer(wma, pdev, vdev, add_sta->staMac, WMI_PEER_TYPE_DEFAULT, add_sta->smesessionId, |
