]> git.baikalelectronics.ru Git - kernel.git/commit
wil6210: handle multiple connect/disconnect events
authorMaya Erez <qca_merez@qca.qualcomm.com>
Sun, 17 Jan 2016 10:39:10 +0000 (12:39 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 26 Jan 2016 14:47:38 +0000 (16:47 +0200)
commit53294d49908a54aeaedc31e00e1bcb2e2e38ba5f
tree7d291dbcbe29a99c95bd6c837dd6ab091f45e4ef
parent54ea36ae7afa9ec851c2be2366c0e06db4fed9fe
wil6210: handle multiple connect/disconnect events

In the current solution wil6210 configures the vring in a worker
and holds only one pending CID. This implementation may lead to
race conditions between connect and disconnect events of multiple
stations or fast connect/disconnect events of the same station.

In order to allow the removal of the connect worker and handling of
WMI_VRING_CFG_DONE_EVENTID in the connect event, the WMI replies
that provide the reply in a given buffer needs to be handled
immediately in the WMI event interrupt thread.
To prevent deadlocks, WMI replies that requires additional
handling are still handled via the events list.

Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/main.c
drivers/net/wireless/ath/wil6210/txrx.c
drivers/net/wireless/ath/wil6210/wil6210.h
drivers/net/wireless/ath/wil6210/wmi.c