>>> On 06.12.16 at 10:25, <pet...@infradead.org> wrote: > On Tue, Dec 06, 2016 at 01:46:37AM -0700, Jan Beulich wrote: >> > + asm volatile ( >> > + "pushfl\n\t" >> > + "pushl %%cs\n\t" >> > + "pushl $1f\n\t" >> > + "iret\n\t" >> > + "1:" >> > + : "+r" (__sp) : : "cc", "memory"); >> >> I don't thing EFLAGS (i.e. "cc") gets modified anywhere here. And >> the memory clobber would perhaps better be pulled out into an >> explicit barrier() invocation (making it more obvious what it's needed >> for)? > > EVerything that implies a memory barrier (and I think serializing > instructions do that) also imply a compiler barrier. > > Not doing the memory clobber gets you inconsistency wrt everything else.
Well, I didn't say dropping the memory clobber altogether, but split it into a separate barrier() invocation (placed perhaps after the #endif). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel