Subject: Re: [PATCH v5] introduce macro spin_event_timeout()

From: Timur Tabi <[email-masked]>
Date: Wed, 11 Mar 2009 16:54:58 -0500

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) {
	udelay(10);
	/* 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