aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/softirq.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-07-28 16:28:21 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-07-28 16:28:21 +0100
commit7ee1d0108a85da052767484255d631352b184fca (patch)
tree18ea83ec4eafb6a09933c5aca970789c27750ed0 /xen/include/xen/softirq.h
parentc88235741e1d230a9dab1be55ee87547b9980f65 (diff)
downloadxen-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.h26
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