2018-07-30 18:19:43

by Ben Greear

[permalink] [raw]
Subject: [PATCH] ath10k: Protect against buggy firmware.

From: Ben Greear <[email protected]>

While testing some buggy wave-2 firmware, I was seeing full
kernel crashes. Adding this additional check keeps
the kernel from crashing.

Signed-off-by: Ben Greear <[email protected]>
---
drivers/net/wireless/ath/ath10k/htt_rx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index 478cc67..8ab949d 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -2644,9 +2644,9 @@ static void ath10k_htt_fetch_peer_stats(struct ath10k *ar,
rcu_read_lock();
spin_lock_bh(&ar->data_lock);
peer = ath10k_peer_find_by_id(ar, peer_id);
- if (!peer) {
- ath10k_warn(ar, "Invalid peer id %d peer stats buffer\n",
- peer_id);
+ if (!peer || !peer->sta) {
+ ath10k_warn(ar, "Invalid peer id %d or peer stats buffer, peer: %p sta: %p\n",
+ peer_id, peer, peer ? peer->sta : NULL);
goto out;
}

--
2.4.11