[PATCH v5] introduce macro spin_event_timeout()

Timur Tabi timur at freescale.com
Thu Mar 12 08:54:58 EST 2009

Benjamin Herrenschmidt wrote:

> Well, there's a non-empty set of HW where polling as fast as you can
> will effectively prevent it to make fwd progress...

Alan Cox mentioned this.  He gave PCI and 10us as an example.  I suggested 
adding a third parameter that would be a udelay() inserted into the loop.  He 
countered with this:

spin_until_timeout(readb(foo) & 0x80, 30 * HZ) {
	/* Maybe do other stuff */

But I don't know how to make that work *and* have it return a value indicating 
timeout or success.

Timur Tabi
Linux Kernel Developer @ Freescale

More information about the Linuxppc-dev mailing list