Subject: Re: [PATCH] SMU LED driver

From: Benjamin Herrenschmidt <[email-masked]>
Date: Mon, 15 Jan 2007 08:48:59 +1100

On Sun, 2007-01-14 at 14:31 +0100, Michael Hanselmann wrote:
> On Mon, Jan 08, 2007 at 12:02:45PM +1100, Benjamin Herrenschmidt wrote:
> > Just have 1 request allocated once for all. Then, have a global set to
> > what status you want the LED at. Once the completion of any request
> > arrives, if the new status is different from what you want, send a new
> > one to fix it up :-)
> 
> Implemented that. See below.
> 
> There's a race condition between setting the LED value and unloading the
> module. smu_led_exit can't return an error. Is it possible to prevent
> unloading the module while an SMU request is still running, and if yes,
> how?

No, you have to deal with it in the unload. You can for example wait for
the SMU request to complete after setting wanted to -1, that sort of
thing.

Also, use spin_lock_irqsave/restore or you'll deadlock if the SMU
completion interrupt happens to interrupt your request function.

Ben.