qcacmn: Populate BSS peer pointer for P2P GO

BSS peer pointer is currently not populated to P2P GO vdev during
peer attach, which will result in an assertion in function
wlan_objmgr_peer_get_ref once a remote peer object is created for
the same P2P GO vdev.

Populate the right BSS peer pointer to the P2P GO vdev during
peer attach.

Change-Id: I8d98d3b1c51d28dcda1ed0feadee30229c74dc9c
CRs-Fixed: 2218195
This commit is contained in:
wadesong 2018-04-09 12:51:25 +08:00 • committed by nshrivas
commit 73deb9aa73

View file

@ -642,6 +642,7 @@ QDF_STATUS wlan_objmgr_vdev_peer_attach(struct wlan_objmgr_vdev *vdev,
{
struct wlan_objmgr_vdev_objmgr *objmgr = &vdev->vdev_objmgr;
struct wlan_objmgr_pdev *pdev;
enum QDF_OPMODE opmode;
wlan_vdev_obj_lock(vdev);
pdev = wlan_vdev_get_pdev(vdev);
@ -675,8 +676,9 @@ QDF_STATUS wlan_objmgr_vdev_peer_attach(struct wlan_objmgr_vdev *vdev,
* this peer as self peer
*/
wlan_vdev_set_selfpeer(vdev, peer);
opmode = wlan_vdev_mlme_get_opmode(vdev);
/* For AP mode, self peer and BSS peer are same */
if (wlan_vdev_mlme_get_opmode(vdev) == QDF_SAP_MODE)
if ((opmode == QDF_SAP_MODE) || (opmode == QDF_P2P_GO_MODE))
wlan_vdev_set_bsspeer(vdev, peer);
}
/* set BSS peer for sta */