diff -r 9632ececc8f4 linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c --- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c Wed Aug 02 10:13:30 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c Wed Aug 02 22:54:09 2006 -0400 @@ -292,7 +292,7 @@ static void update_wallclock(void) shadow_tv.tv_sec = s->wc_sec; shadow_tv.tv_nsec = s->wc_nsec; rmb(); - } while ((s->wc_version & 1) | (shadow_tv_version ^ s->wc_version)); + } while ((s->wc_version & 1) || (shadow_tv_version ^ s->wc_version)); if (!independent_wallclock) __update_wallclock(shadow_tv.tv_sec, shadow_tv.tv_nsec); @@ -319,7 +319,7 @@ static void get_time_values_from_xen(voi dst->tsc_to_nsec_mul = src->tsc_to_system_mul; dst->tsc_shift = src->tsc_shift; rmb(); - } while ((src->version & 1) | (dst->version ^ src->version)); + } while ((src->version & 1) || (dst->version ^ src->version)); dst->tsc_to_usec_mul = dst->tsc_to_nsec_mul / 1000; }