RE: [RFC][PATCH] irq_work: Don't ignore possible cmpxchg failure

From: Peter Zijlstra
Date: Tue Nov 16 2010 - 12:09:05 EST


On Tue, 2010-11-16 at 10:57 -0600, Aguirre, Sergio wrote:

> > > @@ -145,7 +145,10 @@ void irq_work_run(void)
> > > * Clear the BUSY bit and return to the free state if
> > > * no-one else claimed it meanwhile.
> > > */
> > > - cmpxchg(&entry->next, next_flags(NULL, IRQ_WORK_BUSY), NULL);
> > > + xchgres = cmpxchg(&entry->next,
> > > + next_flags(NULL, IRQ_WORK_BUSY),
> > > + NULL);
> > > + BUG_ON(unlikely(xchgres != next_flags(NULL, IRQ_WORK_BUSY)));
> >
> > simply adding (void) in front would be much easier.
>
> But isn't that still leaving the remote possibility of a hidden cmpxchg
> Failure open?

No, we don't care if it fails, read the comment. All we want to know is
that if it still matched, we flipped the bit.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/