diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2021-02-02 18:01:03 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-02-03 17:41:01 -0800 |
commit | fec7fa0a750c2127b01adb626e4945509da96462 (patch) | |
tree | 5d16d9c956cdc8c5a4219998e4074199a89381ce /drivers/net/ethernet/cortina | |
parent | 462e99a18b22609ed40ee0c096775169c2859b21 (diff) |
chelsio: cxgb: Replace the workqueue with threaded interrupt
The external interrupt (F_PL_INTR_EXT) needs to be handled in a process
context and this is accomplished by utilizing a workqueue.
The process context can also be provided by a threaded interrupt instead
of a workqueue. The threaded interrupt can be used later for other
interrupt related processing which require non-atomic context without
using yet another workqueue. free_irq() also ensures that the thread is
done which is currently missing (the worker could continue after the
module has been removed).
Save pending flags in pending_thread_intr. Use the same mechanism
to disable F_PL_INTR_EXT as interrupt source like it is used before the
worker is scheduled. Enable the interrupt again once
t1_elmer0_ext_intr_handler() is done.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/cortina')
0 files changed, 0 insertions, 0 deletions