summaryrefslogtreecommitdiff
path: root/drivers/connector
diff options
context:
space:
mode:
authorMichal Kazior <michal.kazior@tieto.com>2017-01-12 15:14:30 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-10-08 08:26:06 (GMT)
commit874b5acede7892b24cb883b61c1aee9d8842fd0f (patch)
tree027c0a5944a73f8f1ed7451592619359caaedfd3 /drivers/connector
parent91e66498a96a1cfac4b7c0c82b0027232856623c (diff)
downloadlinux-874b5acede7892b24cb883b61c1aee9d8842fd0f.tar.xz
ath10k: prevent sta pointer rcu violation
[ Upstream commit 0a744d927406389e00687560d9ce3c5ab0e58db9 ] Station pointers are RCU protected so driver must be extra careful if it tries to store them internally for later use outside of the RCU section it obtained it in. It was possible for station teardown to race with some htt events. The possible outcome could be a use-after-free and a crash. Only peer-flow-control capable firmware was affected (so hardware-wise qca99x0 and qca4019). This could be done in sta_state() itself via explicit synchronize_net() call but there's already a convenient sta_pre_rcu_remove() op that can be hooked up to avoid extra rcu stall. The peer->sta pointer itself can't be set to NULL/ERR_PTR because it is later used in sta_state() for extra sanity checks. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/connector')
0 files changed, 0 insertions, 0 deletions