diff options
author | Maya Erez <qca_merez@qca.qualcomm.com> | 2016-01-28 19:24:04 +0200 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2016-02-02 14:05:58 +0200 |
commit | fe5c271e2878fb080f1b32fec5b4e3f7a6070152 (patch) | |
tree | 15750927bce554ae44b86f746d1fedef40025d6e /drivers/net/wireless/cisco | |
parent | 78771d76f826202012201d700028a2d866d03fb3 (diff) |
wil6210: protect synchronous wmi commands handling
In case there are multiple WMI commands with the same reply_id,
the following scenario can occur:
- Driver sends the first command to the device
- The reply didn’t get on time and there is timeout
- Reply_id, reply_buf and reply_size are set to 0
- Driver sends second wmi command with the same reply_id as the first
- Driver sets wil->reply_id
- Reply for the first wmi command arrives and handled by wmi_recv_cmd
- As its ID fits the reply_id but the reply_buf is not set yet it is
handled as a reply with event handler, and WARN_ON is printed
This patch guarantee atomic setting of all the reply variables and
prevents the above scenario.
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/cisco')
0 files changed, 0 insertions, 0 deletions