From 604fe16cc05fc858e7e480378c11ff27928dbe95 Mon Sep 17 00:00:00 2001 From: Krishna Kumaar Natarajan Date: Sat, 28 Jan 2017 18:37:01 -0800 Subject: [PATCH] qcacmn: Update peer delete sequence in dp_peer_delete_wifi3() Update peer delete sequence in dp_peer_delete_wifi3(). Currently local peer id is freed and peer_info_spinlock is destroyed after peer is deleted. This is resulting in OOPS error. Call dp_unref_peer_delete only after cleaning other peer information. Change-Id: I58cd7114d07c7d7addc941e8509661f050c23a9c CRs-Fixed: 1116647 --- dp/wifi3.0/dp_main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index db87d14b6b6e..6c52dacd54f3 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -1576,6 +1576,11 @@ static void dp_peer_delete_wifi3(void *peer_handle) QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH, FL("peer %p (%pM)"), peer, peer->mac_addr.raw); +#ifndef CONFIG_WIN + dp_local_peer_id_free(peer->vdev->pdev, peer); +#endif + qdf_spinlock_destroy(&peer->peer_info_lock); + /* * Remove the reference added during peer_attach. * The peer will still be left allocated until the @@ -1583,10 +1588,6 @@ static void dp_peer_delete_wifi3(void *peer_handle) * reference, added by the PEER_MAP message. */ dp_peer_unref_delete(peer_handle); -#ifndef CONFIG_WIN - dp_local_peer_id_free(peer->vdev->pdev, peer); -#endif - qdf_spinlock_destroy(&peer->peer_info_lock); } /*