Messages in this thread | | | Subject | Re: [RFC][PATCH] irq_work -v2 | From | Peter Zijlstra <> | Date | Fri, 25 Jun 2010 21:47:03 +0200 |
| |
On Fri, 2010-06-25 at 21:30 +0200, Andi Kleen wrote: > > + entry->next = next_flags(NULL, IRQ_WORK_BUSY); > > + entry->func(entry); > > Needs compiler memory barrier here I think. > > > + /* > > + * 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); > > + }
Both the (indirect) function call and the cmpxchg imply a compiler barrier.
| |