Sorry. My mistake. In this case it seems that sleep functions can be called from apds990x_irq, since interrupt line is disabled globally (because of IRQF_ONESHOT). And nothing bad will happen if you know that device can be blocked for relatively long time.
2012/7/31 Denis Yefremov <[email protected]>: > Interrupt handler apds990x_irq in APDS990x sensor driver > invokes mutex_lock that is might sleep operation. > > Found by Linux Driver Verification project (linuxtesting.org) > within my participation in the GSoC 2012 program. > > > static irqreturn_t apds990x_irq(int irq, void *data) > { > struct apds990x_chip *chip = data; > u8 status; > > apds990x_read_byte(chip, APDS990X_STATUS, &status); > apds990x_ack_int(chip, status); > > mutex_lock(&chip->mutex); > ... > } > > static int __devinit apds990x_probe(struct i2c_client *client, > const struct i2c_device_id *id) > { > ... > err = request_threaded_irq(client->irq, NULL, > apds990x_irq, > IRQF_TRIGGER_FALLING | IRQF_TRIGGER_LOW | > IRQF_ONESHOT, > "apds990x", chip); > ... > } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

