Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0eeafad authored by Ben Greear's avatar Ben Greear Committed by Kalle Valo
Browse files

ath10k: Clean up peer when sta goes away.



If WMI and/or firmware has issues removing the peer object,
then we still need to clean up the peer object in the driver.

Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent c5ace87a
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -5997,9 +5997,17 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
				continue;

			if (peer->sta == sta) {
				ath10k_warn(ar, "found sta peer %pM entry on vdev %i after it was supposedly removed\n",
					    sta->addr, arvif->vdev_id);
				ath10k_warn(ar, "found sta peer %pM (ptr %p id %d) entry on vdev %i after it was supposedly removed\n",
					    sta->addr, peer, i, arvif->vdev_id);
				peer->sta = NULL;

				/* Clean up the peer object as well since we
				 * must have failed to do this above.
				 */
				list_del(&peer->list);
				ar->peer_map[i] = NULL;
				kfree(peer);
				ar->num_peers--;
			}
		}
		spin_unlock_bh(&ar->data_lock);