On Tue, 2008-10-21 at 13:31 -0700, Andrew Morton wrote:
> On Tue, 21 Oct 2008 09:50:06 +1100
> Ben Nizette <[EMAIL PROTECTED]> wrote:
> > +static irqreturn_t gpio_irq_handler(int irq, void *dev_id)
> > +{
> > +   struct gpio_desc *desc = dev_id;
> > +   int gpio = desc - gpio_desc;
> > +   int new, old;
> > +
> > +   if (!gpio_is_valid(gpio))
> > +           return IRQ_NONE;
> > +
> > +   new = gpio_get_value(gpio);
> > +   old = desc->val;
> > +
> > +   if ((new && !old && test_bit(ASYNC_RISING, &desc->flags)) ||
> > +       (!new && old && test_bit(ASYNC_FALLING, &desc->flags)))
> > +           sysfs_notify(&desc->dev->kobj, NULL, "value");
> 
> eekeekeek!  sysfs_notify() does mutex_lock() and will die horridly if
> called from an interrupt handler.
> 
> You should have got a storm of warnings when runtime testing this code.
> Please ensure that all debug options are enabled when testing code. 
> Documentation/SubmitChecklist has help.

0_o yea that isn't great...  Thanks - shall respin and repost shortly.


        --Ben.

--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to