[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] fix ia64_fast_eoi hypercall to catch up PHYSDEVOP_pirq_eoi_gmfn
# HG changeset patch # User Isaku Yamahata <yamahata@xxxxxxxxxxxxx> # Date 1231132418 -32400 # Node ID 29a0ecb8a711b28afab72839b57c35571391db14 # Parent 636c685d9622851589ef2fac1a21d405ac901c49 [IA64] fix ia64_fast_eoi hypercall to catch up PHYSDEVOP_pirq_eoi_gmfn ia64 xen Linux uses ia64_fast_eoi to do eoi. So the c/s 18862:f0a9a58608a0 should also have changed od_pir_guest_eoi() too. This patch changes it. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- xen/arch/ia64/xen/hypercall.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-) diff -r 636c685d9622 -r 29a0ecb8a711 xen/arch/ia64/xen/hypercall.c --- a/xen/arch/ia64/xen/hypercall.c Mon Jan 05 12:24:58 2009 +0900 +++ b/xen/arch/ia64/xen/hypercall.c Mon Jan 05 14:13:38 2009 +0900 @@ -61,11 +61,19 @@ xen_fast_hypercall (struct pt_regs *regs return IA64_NO_FAULT; } +static long __do_pirq_guest_eoi(struct domain *d, int pirq) +{ + if ( pirq < 0 || pirq >= NR_IRQS ) + return -EINVAL; + if ( d->arch.pirq_eoi_map ) + evtchn_unmask(d->pirq_to_evtchn[pirq]); + return pirq_guest_eoi(d, pirq); +} + long do_pirq_guest_eoi(int pirq) { - return pirq_guest_eoi(current->domain, pirq); -} - + return __do_pirq_guest_eoi(current->domain, pirq); +} static void fw_hypercall_ipi (struct pt_regs *regs) @@ -483,12 +491,7 @@ long do_physdev_op(int cmd, XEN_GUEST_HA ret = -EFAULT; if ( copy_from_guest(&eoi, arg, 1) != 0 ) break; - ret = -EINVAL; - if ( eoi.irq < 0 || eoi.irq >= NR_IRQS ) - break; - if ( current->domain->arch.pirq_eoi_map ) - evtchn_unmask(current->domain->pirq_to_evtchn[eoi.irq]); - ret = pirq_guest_eoi(current->domain, eoi.irq); + ret = __do_pirq_guest_eoi(current->domain, eoi.irq); break; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |