Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/bouyer-xenpvh]: src/sys/arch/xen/xen Now that we return from hypervisor_...
details: https://anonhg.NetBSD.org/src/rev/19d18eac95e0
branches: bouyer-xenpvh
changeset: 1024957:19d18eac95e0
user: bouyer <bouyer%NetBSD.org@localhost>
date: Sun Apr 12 11:16:58 2020 +0000
description:
Now that we return from hypervisor_callback via Xdoreti, no need to emulate it
in evtchn_do_event() any more.
diffstat:
sys/arch/xen/xen/evtchn.c | 35 ++---------------------------------
1 files changed, 2 insertions(+), 33 deletions(-)
diffs (63 lines):
diff -r 1c83e2b73899 -r 19d18eac95e0 sys/arch/xen/xen/evtchn.c
--- a/sys/arch/xen/xen/evtchn.c Sat Apr 11 21:21:49 2020 +0000
+++ b/sys/arch/xen/xen/evtchn.c Sun Apr 12 11:16:58 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: evtchn.c,v 1.88.2.1 2020/04/10 14:38:19 bouyer Exp $ */
+/* $NetBSD: evtchn.c,v 1.88.2.2 2020/04/12 11:16:58 bouyer Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -54,7 +54,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.88.2.1 2020/04/10 14:38:19 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.88.2.2 2020/04/12 11:16:58 bouyer Exp $");
#include "opt_xen.h"
#include "isa.h"
@@ -316,8 +316,6 @@
struct intrhand *ih;
int (*ih_fun)(void *, void *);
uint32_t iplmask;
- int i;
- uint32_t iplbit;
KASSERTMSG(evtch >= 0, "negative evtch: %d", evtch);
KASSERTMSG(evtch < NR_EVENT_CHANNELS,
@@ -404,35 +402,6 @@
#endif /* NPCI > 0 || NISA > 0 */
splx:
- /*
- * C version of spllower(). ASTs will be checked when
- * hypevisor_callback() exits, so no need to check here.
- */
- iplmask = (XUNMASK(ci, ilevel) & ci->ci_xpending);
- while (iplmask != 0) {
- iplbit = 1 << (NIPL - 1);
- i = (NIPL - 1);
- while (iplmask != 0 && i > ilevel) {
- while (iplmask & iplbit) {
- ci->ci_xpending &= ~iplbit;
- ci->ci_ilevel = i;
- for (ih = ci->ci_xsources[i]->is_handlers;
- ih != NULL; ih = ih->ih_next) {
- KASSERT(ih->ih_cpu == ci);
- x86_enable_intr();
- ih_fun = (void *)ih->ih_fun;
- ih_fun(ih->ih_arg, regs);
- x86_disable_intr();
- }
- hypervisor_enable_ipl(i);
- /* more pending IPLs may have been registered */
- iplmask =
- (XUNMASK(ci, ilevel) & ci->ci_xpending);
- }
- i--;
- iplbit >>= 1;
- }
- }
ci->ci_ilevel = ilevel;
return 0;
}
Home |
Main Index |
Thread Index |
Old Index