| From foo@baz Fri Mar 16 15:43:17 CET 2018 |
| From: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com> |
| Date: Mon, 6 Nov 2017 13:39:31 +0530 |
| Subject: ath10k: update tdls teardown state to target |
| |
| From: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com> |
| |
| |
| [ Upstream commit 424ea0d174e82365f85c6770225dba098b8f1d5f ] |
| |
| It is required to update the teardown state of the peer when |
| a tdls link with that peer is terminated. This information is |
| useful for the target to perform some cleanups wrt the tdls peer. |
| |
| Without proper cleanup, target assumes that the peer is connected and |
| blocks future connection requests, updating the teardown state of the |
| peer addresses the problem. |
| |
| Tested this change on QCA9888 with 10.4-3.5.1-00018 fw version. |
| |
| Signed-off-by: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com> |
| Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/wireless/ath/ath10k/mac.c | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/drivers/net/wireless/ath/ath10k/mac.c |
| +++ b/drivers/net/wireless/ath/ath10k/mac.c |
| @@ -6183,6 +6183,16 @@ static int ath10k_sta_state(struct ieee8 |
| "mac vdev %d peer delete %pM sta %pK (sta gone)\n", |
| arvif->vdev_id, sta->addr, sta); |
| |
| + if (sta->tdls) { |
| + ret = ath10k_mac_tdls_peer_update(ar, arvif->vdev_id, |
| + sta, |
| + WMI_TDLS_PEER_STATE_TEARDOWN); |
| + if (ret) |
| + ath10k_warn(ar, "failed to update tdls peer state for %pM state %d: %i\n", |
| + sta->addr, |
| + WMI_TDLS_PEER_STATE_TEARDOWN, ret); |
| + } |
| + |
| ret = ath10k_peer_delete(ar, arvif->vdev_id, sta->addr); |
| if (ret) |
| ath10k_warn(ar, "failed to delete peer %pM for vdev %d: %i\n", |