diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-07-28 16:28:21 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-07-28 16:28:21 +0100 |
commit | 7ee1d0108a85da052767484255d631352b184fca (patch) | |
tree | 18ea83ec4eafb6a09933c5aca970789c27750ed0 /xen/include/xen/softirq.h | |
parent | c88235741e1d230a9dab1be55ee87547b9980f65 (diff) | |
download | xen-7ee1d0108a85da052767484255d631352b184fca.tar.gz xen-7ee1d0108a85da052767484255d631352b184fca.tar.bz2 xen-7ee1d0108a85da052767484255d631352b184fca.zip |
passthrough: use tasklet to deliver interrupts
This patch enables delivery of interrupts even if the VCPU#0 is
halted.
Note: the changes to softirq.{ch} are needed for ia64 build.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Diffstat (limited to 'xen/include/xen/softirq.h')
-rw-r--r-- | xen/include/xen/softirq.h | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h index efd0a54443..5d5661fd43 100644 --- a/xen/include/xen/softirq.h +++ b/xen/include/xen/softirq.h @@ -29,29 +29,9 @@ asmlinkage void do_softirq(void); void open_softirq(int nr, softirq_handler handler); void softirq_init(void); -static inline void cpumask_raise_softirq(cpumask_t mask, unsigned int nr) -{ - int cpu; - - for_each_cpu_mask(cpu, mask) - { - if ( test_and_set_bit(nr, &softirq_pending(cpu)) ) - cpu_clear(cpu, mask); - } - - smp_send_event_check_mask(&mask); -} - -static inline void cpu_raise_softirq(unsigned int cpu, unsigned int nr) -{ - if ( !test_and_set_bit(nr, &softirq_pending(cpu)) ) - smp_send_event_check_cpu(cpu); -} - -static inline void raise_softirq(unsigned int nr) -{ - set_bit(nr, &softirq_pending(smp_processor_id())); -} +void cpumask_raise_softirq(cpumask_t mask, unsigned int nr); +void cpu_raise_softirq(unsigned int cpu, unsigned int nr); +void raise_softirq(unsigned int nr); /* * TASKLETS -- dynamically-allocatable tasks run in softirq context |