lkml.org 
[lkml]   [2002]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 9/9]Four new i2c drivers and __init/__exit cleanup to i2c
On Sun, Sep 15, 2002 at 07:18:46PM -0400, Jeff Garzik wrote:
> Albert Cranford wrote:
> > --- linux/drivers/i2c/i2c-elektor.c.orig 2002-09-14 22:10:45.000000000 -0400
> > +++ linux-2.5.34/drivers/i2c/i2c-elektor.c 2002-09-15 01:18:55.000000000 -0400
> > @@ -125,12 +125,12 @@
> > int timeout = 2;
> >
> > if (irq > 0) {
> > - cli();
> > + local_irq_disable();
> > if (pcf_pending == 0) {
> > interruptible_sleep_on_timeout(&pcf_wait, timeout*HZ );
> > } else
> > pcf_pending = 0;
> > - sti();
> > + local_irq_enable();
> > } else {
> > udelay(100);
> > }
>
>
>
> this is _not_ the way to fix... use a proper spinlock

You can't hold a spinlock and sleep though, was one of my points back
in August. (Albert submitted a patch with all cli()/sti() converted
to spin_lock_irqsave()/spin_unlock_irqrestore().)

--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:22    [W:0.047 / U:2.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site