[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 7/7] mini-os: Moved force_evtchn_callback to header
On Wed, 2014-06-04 at 17:06 +0100, Thomas Leonard wrote: > From: Karim Raslan <karim.allah.ahmed@xxxxxxxxx> Why is this being done? > > Signed-off-by: Karim Allah Ahmed <karim.allah.ahmed@xxxxxxxxx> > [talex5@xxxxxxxxx: separated from big ARM commit] > Signed-off-by: Thomas Leonard <talex5@xxxxxxxxx> > --- > extras/mini-os/hypervisor.c | 20 +------------------- > extras/mini-os/include/hypervisor.h | 1 - > extras/mini-os/include/x86/os.h | 17 +++++++++++++++++ > 3 files changed, 18 insertions(+), 20 deletions(-) > > diff --git a/extras/mini-os/hypervisor.c b/extras/mini-os/hypervisor.c > index b4688a0..9c79d5d 100644 > --- a/extras/mini-os/hypervisor.c > +++ b/extras/mini-os/hypervisor.c > @@ -71,23 +71,6 @@ void do_hypervisor_callback(struct pt_regs *regs) > in_callback = 0; > } > > -void force_evtchn_callback(void) > -{ > - int save; > - vcpu_info_t *vcpu; > - vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; > - save = vcpu->evtchn_upcall_mask; > - > - while (vcpu->evtchn_upcall_pending) { > - vcpu->evtchn_upcall_mask = 1; > - barrier(); > - do_hypervisor_callback(NULL); > - barrier(); > - vcpu->evtchn_upcall_mask = save; > - barrier(); > - }; > -} > - > inline void mask_evtchn(uint32_t port) > { > shared_info_t *s = HYPERVISOR_shared_info; > @@ -110,8 +93,7 @@ inline void unmask_evtchn(uint32_t port) > &vcpu_info->evtchn_pending_sel) ) > { > vcpu_info->evtchn_upcall_pending = 1; > - if ( !vcpu_info->evtchn_upcall_mask ) > - force_evtchn_callback(); > + force_evtchn_callback(); If this is something to do with the code motion then I'm not sure what, it certainly needs to be explained somewhere. > } > } > > diff --git a/extras/mini-os/include/hypervisor.h > b/extras/mini-os/include/hypervisor.h > index a62cb78..9e9cac8 100644 > --- a/extras/mini-os/include/hypervisor.h > +++ b/extras/mini-os/include/hypervisor.h > @@ -35,7 +35,6 @@ extern union start_info_union start_info_union; > #define start_info (start_info_union.start_info) > > /* hypervisor.c */ > -void force_evtchn_callback(void); > void do_hypervisor_callback(struct pt_regs *regs); > void mask_evtchn(uint32_t port); > void unmask_evtchn(uint32_t port); > diff --git a/extras/mini-os/include/x86/os.h b/extras/mini-os/include/x86/os.h > index 73b8297..8eea1be 100644 > --- a/extras/mini-os/include/x86/os.h > +++ b/extras/mini-os/include/x86/os.h > @@ -160,6 +160,23 @@ do { > \ > */ > typedef struct { volatile int counter; } atomic_t; > > +static inline void force_evtchn_callback(void) > +{ > + int save; > + vcpu_info_t *vcpu; > + vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; > + save = vcpu->evtchn_upcall_mask; > + > + while (vcpu->evtchn_upcall_pending) { > + vcpu->evtchn_upcall_mask = 1; > + barrier(); > + do_hypervisor_callback(NULL); > + barrier(); > + vcpu->evtchn_upcall_mask = save; > + barrier(); > + }; > +} > + > > /************************** i386 *******************************/ > #ifdef __INSIDE_MINIOS__ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |