diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-06-04 10:50:55 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-06-04 10:50:55 +0100 |
commit | aa1461c9f1fa0770dd7fbbc378224fe2939da302 (patch) | |
tree | 0824cfa90efc5b02ca50324761ae9e1ca9c92b7b | |
parent | dce5093c7b29e485ea9b7ada9328c531ed950844 (diff) | |
download | xen-aa1461c9f1fa0770dd7fbbc378224fe2939da302.tar.gz xen-aa1461c9f1fa0770dd7fbbc378224fe2939da302.tar.bz2 xen-aa1461c9f1fa0770dd7fbbc378224fe2939da302.zip |
notify_via_xen_event_channel() takes explicit domain parameter.
Also remove pointless tasklet from mem_event notify path.
Signed-off-by: John Byrne <john.l.byrne@hp.com>
xen-unstable changeset: 21527:936f4c08eaef
xen-unstable date: Fri Jun 04 10:25:45 2010 +0100
-rw-r--r-- | xen/arch/ia64/vmx/vmx_support.c | 2 | ||||
-rw-r--r-- | xen/arch/x86/hvm/hvm.c | 2 | ||||
-rw-r--r-- | xen/arch/x86/mm/mem_event.c | 14 | ||||
-rw-r--r-- | xen/common/event_channel.c | 4 | ||||
-rw-r--r-- | xen/include/xen/event.h | 2 | ||||
-rw-r--r-- | xen/include/xen/sched.h | 2 |
6 files changed, 6 insertions, 20 deletions
diff --git a/xen/arch/ia64/vmx/vmx_support.c b/xen/arch/ia64/vmx/vmx_support.c index f66d988ef3..98ce5c9511 100644 --- a/xen/arch/ia64/vmx/vmx_support.c +++ b/xen/arch/ia64/vmx/vmx_support.c @@ -62,7 +62,7 @@ void vmx_send_assist_req(struct vcpu *v) } wmb(); p->state = STATE_IOREQ_READY; - notify_via_xen_event_channel(v->arch.arch_vmx.xen_port); + notify_via_xen_event_channel(v->domain, v->arch.arch_vmx.xen_port); for (;;) { if (p->state != STATE_IOREQ_READY && diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index d936829a14..900c779019 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -896,7 +896,7 @@ bool_t hvm_send_assist_req(struct vcpu *v) * prepare_wait_on_xen_event_channel() is an implicit barrier. */ p->state = STATE_IOREQ_READY; - notify_via_xen_event_channel(v->arch.hvm_vcpu.xen_port); + notify_via_xen_event_channel(v->domain, v->arch.hvm_vcpu.xen_port); return 1; } diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c index 10ea0655c9..5584328dd6 100644 --- a/xen/arch/x86/mm/mem_event.c +++ b/xen/arch/x86/mm/mem_event.c @@ -35,13 +35,6 @@ #define MEM_EVENT_RING_THRESHOLD 4 -static void mem_event_notify(struct domain *d) -{ - prepare_wait_on_xen_event_channel(d->mem_event.xen_port); - notify_via_xen_event_channel(d->mem_event.xen_port); -} - - int mem_event_enable(struct domain *d, mfn_t ring_mfn, mfn_t shared_mfn) { int rc; @@ -64,11 +57,6 @@ int mem_event_enable(struct domain *d, mfn_t ring_mfn, mfn_t shared_mfn) ((mem_event_shared_page_t *)d->mem_event.shared_page)->port = rc; d->mem_event.xen_port = rc; - /* Initialise tasklet */ - tasklet_init(&d->mem_event.tasklet, - (void(*)(unsigned long))mem_event_notify, - (unsigned long)d); - /* Prepare ring buffer */ FRONT_RING_INIT(&d->mem_event.front_ring, (mem_event_sring_t *)d->mem_event.ring_page, @@ -125,7 +113,7 @@ void mem_event_put_request(struct domain *d, mem_event_request_t *req) mem_event_ring_unlock(d); - tasklet_schedule(&d->mem_event.tasklet); + notify_via_xen_event_channel(d, d->mem_event.xen_port); } void mem_event_get_response(struct domain *d, mem_event_response_t *rsp) diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index b6a15d68a4..0fe798098c 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -986,10 +986,10 @@ void free_xen_event_channel( } -void notify_via_xen_event_channel(int lport) +void notify_via_xen_event_channel(struct domain *ld, int lport) { struct evtchn *lchn, *rchn; - struct domain *ld = current->domain, *rd; + struct domain *rd; int rport; spin_lock(&ld->event_lock); diff --git a/xen/include/xen/event.h b/xen/include/xen/event.h index b366e582a8..0adb2eb93e 100644 --- a/xen/include/xen/event.h +++ b/xen/include/xen/event.h @@ -57,7 +57,7 @@ void free_xen_event_channel( int guest_enabled_event(struct vcpu *v, int virq); /* Notify remote end of a Xen-attached event channel.*/ -void notify_via_xen_event_channel(int lport); +void notify_via_xen_event_channel(struct domain *ld, int lport); /* Wait on a Xen-attached event channel. */ #define wait_on_xen_event_channel(port, condition) \ diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 2b2eca3bb8..00dfce50e4 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -187,8 +187,6 @@ struct mem_event_domain bool_t enabled; /* event channel port (vcpu0 only) */ int xen_port; - /* tasklet */ - struct tasklet tasklet; }; struct domain |