# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1308239842 -3600
# Node ID 7b4a45a4075db489e87b3551737d3a8224462d54
# Parent 3ff057cbb16b6a19f1710900e1ac0993cb8bf5d3
tasklets: Switch a few tasklets to run in softirq context.
There are a couple of others which may also be safe. I've converted
only the most obvious one.
Signed-off-by: Keir Fraser <keir@xxxxxxx>
---
diff -r 3ff057cbb16b -r 7b4a45a4075d xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c Thu Jun 16 16:56:31 2011 +0100
+++ b/xen/arch/x86/hvm/hvm.c Thu Jun 16 16:57:22 2011 +0100
@@ -992,9 +992,10 @@
if ( rc != 0 )
goto fail5;
- tasklet_init(&v->arch.hvm_vcpu.assert_evtchn_irq_tasklet,
- (void(*)(unsigned long))hvm_assert_evtchn_irq,
- (unsigned long)v);
+ softirq_tasklet_init(
+ &v->arch.hvm_vcpu.assert_evtchn_irq_tasklet,
+ (void(*)(unsigned long))hvm_assert_evtchn_irq,
+ (unsigned long)v);
v->arch.user_regs.eflags = 2;
diff -r 3ff057cbb16b -r 7b4a45a4075d xen/common/trace.c
--- a/xen/common/trace.c Thu Jun 16 16:56:31 2011 +0100
+++ b/xen/common/trace.c Thu Jun 16 16:57:22 2011 +0100
@@ -641,7 +641,8 @@
{
send_guest_global_virq(dom0, VIRQ_TBUF);
}
-static DECLARE_TASKLET(trace_notify_dom0_tasklet, trace_notify_dom0, 0);
+static DECLARE_SOFTIRQ_TASKLET(trace_notify_dom0_tasklet,
+ trace_notify_dom0, 0);
/**
* trace - Enters a trace tuple into the trace buffer for the current CPU.
diff -r 3ff057cbb16b -r 7b4a45a4075d xen/drivers/char/console.c
--- a/xen/drivers/char/console.c Thu Jun 16 16:56:31 2011 +0100
+++ b/xen/drivers/char/console.c Thu Jun 16 16:57:22 2011 +0100
@@ -316,7 +316,8 @@
{
send_guest_global_virq(dom0, VIRQ_CON_RING);
}
-static DECLARE_TASKLET(notify_dom0_con_ring_tasklet, notify_dom0_con_ring, 0);
+static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
+ notify_dom0_con_ring, 0);
static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
{
diff -r 3ff057cbb16b -r 7b4a45a4075d xen/drivers/passthrough/io.c
--- a/xen/drivers/passthrough/io.c Thu Jun 16 16:56:31 2011 +0100
+++ b/xen/drivers/passthrough/io.c Thu Jun 16 16:57:22 2011 +0100
@@ -127,8 +127,9 @@
return -ENOMEM;
}
memset(hvm_irq_dpci, 0, sizeof(*hvm_irq_dpci));
- tasklet_init(&hvm_irq_dpci->dirq_tasklet,
- hvm_dirq_assist, (unsigned long)d);
+ softirq_tasklet_init(
+ &hvm_irq_dpci->dirq_tasklet,
+ hvm_dirq_assist, (unsigned long)d);
hvm_irq_dpci->mirq = xmalloc_array(struct hvm_mirq_dpci_mapping,
d->nr_pirqs);
hvm_irq_dpci->dirq_mask = xmalloc_array(unsigned long,
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|