ia64/xen-unstable

changeset 17614:37cf8747f55b

minios: in non-x86 case, use wmb to enforce ordering between
evtchn_upcall_pending and evtchn_pending_sel stores.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu May 08 11:55:13 2008 +0100 (2008-05-08)
parents addfc2db07a3
children fe625fd796f8
files extras/mini-os/hypervisor.c
line diff
     1.1 --- a/extras/mini-os/hypervisor.c	Thu May 08 11:53:39 2008 +0100
     1.2 +++ b/extras/mini-os/hypervisor.c	Thu May 08 11:55:13 2008 +0100
     1.3 @@ -46,7 +46,11 @@ void do_hypervisor_callback(struct pt_re
     1.4      in_callback = 1;
     1.5     
     1.6      vcpu_info->evtchn_upcall_pending = 0;
     1.7 -    /* NB. No need for a barrier here -- XCHG is a barrier on x86. */
     1.8 +    /* NB x86. No need for a barrier here -- XCHG is a barrier on x86. */
     1.9 +#if !defined(__i386__) && !defined(__x86_64__)
    1.10 +    /* Clear master flag /before/ clearing selector flag. */
    1.11 +    wmb();
    1.12 +#endif
    1.13      l1 = xchg(&vcpu_info->evtchn_pending_sel, 0);
    1.14      while ( l1 != 0 )
    1.15      {