hv: softirq: refine softirq

1. add register_softirq to register a softirq handler
2. rename exec_softirq to do_softirq; raise_softirq to fire_softirq.
3. in do_softirq call registered softirq handler not call
the device softirq handle function directly
4. enable irq after vm exit and disable irq after the first
call do_softirq before vm enter.
5. call do_softirq again when irq disabled to handle the risk
unhandled softirq.
6. rename SOFTIRQ_DEV_ASSIGN to SOFTIRQ_PTDEV
7. remove SOFTIRQ_ATOMIC

Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Li, Fei1
2018-07-30 15:58:36 +08:00
committed by lijinxia
parent 073583cc41
commit 457ecd6ef7
8 changed files with 82 additions and 122 deletions

View File

@@ -5,6 +5,7 @@
*/
#include <hypervisor.h>
#include <softirq.h>
static spinlock_t exception_spinlock = { .head = 0U, .tail = 0U, };