]> git.baikalelectronics.ru Git - kernel.git/commit
staging/ks7010: replace SME taslet with work
authorDavidlohr Bueso <dave@stgolabs.net>
Mon, 11 Apr 2022 15:16:18 +0000 (08:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Apr 2022 13:53:50 +0000 (15:53 +0200)
commit2ee75de462c743b484405eeace3eb01bdc30b028
tree3a2a7ca3b9bb5a330e8230c8a15123d114777367
parente86101aea11d721867fcd04f74f04b8ec97e3746
staging/ks7010: replace SME taslet with work

Tasklets have long been deprecated as being too heavy on the system
by running in irq context - and this is not a performance critical
path. If a higher priority process wants to run, it must wait for
the tasklet to finish before doing so.

The execution of the SME event will now occur in task context. There
are, however, changes in concurrency. Workqueues, unlike tasklets,
are not serialized among themselves and can run concurrently
updating sme_i.qhead. However, the current code is already exposed
in same ways, regardless of the deferral mechanism, in that
hostif_sme_enqueue() does unserialized enqueues updating sme_i.qtail.

Also get rid of the bogus (power save) tasklet enabling, as it
is never disabled to begin with.

Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Link: https://lore.kernel.org/r/20220411151620.129178-5-dave@stgolabs.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks_hostif.c
drivers/staging/ks7010/ks_wlan.h