Subject: CVS commit: src/sys/arch/xen
To: None <source-changes@NetBSD.org>
From: Manuel Bouyer <bouyer@netbsd.org>
List: source-changes
Date: 04/19/2005 22:14:30
Module Name: src
Committed By: bouyer
Date: Tue Apr 19 22:14:30 UTC 2005
Modified Files:
src/sys/arch/xen/i386: hypervisor_machdep.c
src/sys/arch/xen/xen: evtchn.c xenevt.c
Log Message:
Avoid a race between do_hypervisor_event() and stipending() that could
cause an event to be both handled and marked as pending, or being
marked as pending twice (triggering the diagnostic check
evtch_maskcount[port] == 0 in hypervisor_set_ipending):
mask and clear event by word of 32bit in do_hypervisor_event() or stipending(),
instead of by indiviual bits in do_event() or xenevt_event().
In addition this is marginally more efficient.
To generate a diff of this commit:
cvs rdiff -r1.8 -r1.9 src/sys/arch/xen/i386/hypervisor_machdep.c
cvs rdiff -r1.10 -r1.11 src/sys/arch/xen/xen/evtchn.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/xen/xen/xenevt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.