mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-27 01:11:31 +00:00
ezusb_read_ltv() is always invoked via the ->read_ltv() callback. This callback is mostly invoked under orinoco_lock() which disables BH. There are a few invocations during probe which occur in preemptible context via: ezusb_probe() -> orinoco_init() -> determine_fw_capabilities() Extend `hermes_ops' with the ->read_ltv_pr callback which is implemented with the same callback like ->read_ltv on `hermes_ops_local'. On `ezusb_ops' ->read_ltv is used for callbacks under the lock which need to poll. The new ->read_ltv_pr() is used in the preemptible context in which it is possible to wait for the completion. Provide HERMES_READ_RECORD_PR() and hermes_read_wordrec_pr() which behave like their non _pr equivalents and invoke ->read_ltv_pr(). This removes the last user of ezusb_req_ctx_wait() and can now be removed. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20201113212252.2243570-11-bigeasy@linutronix.de |
||
|---|---|---|
| .. | ||
| airport.c | ||
| cfg.c | ||
| cfg.h | ||
| fw.c | ||
| fw.h | ||
| hermes.c | ||
| hermes.h | ||
| hermes_dld.c | ||
| hermes_dld.h | ||
| hermes_rid.h | ||
| hw.c | ||
| hw.h | ||
| Kconfig | ||
| main.c | ||
| main.h | ||
| Makefile | ||
| mic.c | ||
| mic.h | ||
| orinoco.h | ||
| orinoco_cs.c | ||
| orinoco_nortel.c | ||
| orinoco_pci.c | ||
| orinoco_pci.h | ||
| orinoco_plx.c | ||
| orinoco_tmd.c | ||
| orinoco_usb.c | ||
| scan.c | ||
| scan.h | ||
| spectrum_cs.c | ||
| wext.c | ||
| wext.h | ||