From 73deb9aa73b7c35745b29c88c563c535c6c86c8e Mon Sep 17 00:00:00 2001 From: wadesong Date: Mon, 9 Apr 2018 12:51:25 +0800 Subject: [PATCH] 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 --- umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c b/umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c index 9f9db95be5cc..2f583f1eff35 100644 --- a/umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c +++ b/umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c @@ -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 */