Subject: Re: [PATCH 1/9] PCI: vpd handle longer delays in access (rev3)

From: Matthew Wilcox <[email-masked]>
Date: Tue, 9 Sep 2008 14:23:09 -0600

On Tue, Sep 09, 2008 at 11:20:41AM -0700, Stephen Hemminger wrote:
> Accessing the VPD area can take a long time.  The existing 
> VPD access code fails consistently on my hardware. There are comments
> in the SysKonnect vendor driver that it can take up to 13ms per word. 
> 
> Change the access routines to:
>   * use a mutex rather than spinning with IRQ's disabled and lock held
>   * have a much longer timeout
>   * call cond_resched while spinning

> -		udelay(10);
> +		if (fatal_signal_pending(current))
> +			return -EINTR;
> +		cond_resched();

We're back to the hammering on the pci bus problem again.  However,
cond_resched() does tell us whether we rescheduled!

		if (!cond_resched())
			udelay(10);

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."