diff --git a/drivers/scsi/imm.c b/drivers/scsi/imm.c index f8b88fa78e6274f8b5956d6ea6a3f057881132f5..9164ce1249c107fd2460d0fd9b83daa6f178584b 100644 --- a/drivers/scsi/imm.c +++ b/drivers/scsi/imm.c @@ -77,9 +77,10 @@ static void imm_wakeup(void *ref) spin_lock_irqsave(&arbitration_lock, flags); if (dev->wanted) { - parport_claim(dev->dev); - got_it(dev); - dev->wanted = 0; + if (parport_claim(dev->dev) == 0) { + got_it(dev); + dev->wanted = 0; + } } spin_unlock_irqrestore(&arbitration_lock, flags); }