[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/2] atomic: add atomic_and operations
On Tue, Feb 25, 2020 at 04:12:56PM +0100, Jan Beulich wrote: > On 24.02.2020 09:43, Roger Pau Monne wrote:> --- > a/xen/include/asm-x86/atomic.h > > +++ b/xen/include/asm-x86/atomic.h > > @@ -224,6 +224,14 @@ static inline int atomic_add_unless(atomic_t *v, int > > a, int u) > > return c; > > } > > > > +static inline void atomic_and(unsigned int m, atomic_t *v) > > +{ > > + asm volatile ( > > + "lock; andl %1,%0" > > I realize this is in sync with other atomic_*(), but I'd prefer if > the stray semicolon after "lock" was dropped. Without it the > assembler can actually diagnose a bad use (the destination not > being a memory operand). I'm unaware of reasons why the semicolons > would have been put there. > > > + : "=m" (*(volatile int *)&v->counter) > > + : "ir" (m), "m" (*(volatile int *)&v->counter) ); > > Similarly despite its use elsewhere I'm afraid "i" is not the best > choice here for the constraint. Together with switching to plain > int as the function's first parameter type, "e" would seem better > even if the difference would only manifest for atomic64_t. Well, "e" is indeed specific to x86 32bit integers, but since we are already using "andl" I guess using "i" is equally fine? I don't have a preference really, so if you prefer "e" I'm fine to have it changed. > As to > the choice of parameter type, Linux too uses plain int, so while > I agree with your reasoning I think I also agree with Julien to > use plain int here for consistency. Ack. > Finally, yet another improvement over existing code would be to > use just a single output "+m", with no paralleling input "m". Oh, sure. > With the first and last, but not necessarily the middle one taken > care of (and I'd be happy to take care of them while committing) > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > If, otoh, you disagree on some, then let's see where we can > find common grounds. Thanks, that's fine, please take care while committing if you don't mind. Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |