Преглед изворни кода

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
Krishna Kumaar Natarajan пре 8 година
родитељ
комит
604fe16cc0
1 измењених фајлова са 5 додато и 4 уклоњено
  1. 5 4
      dp/wifi3.0/dp_main.c

+ 5 - 4
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);
 }
 
 /*