On Tuesday 21 April 2015, Dan Carpenter wrote: > Hello Ondrej Zary, > > The patch 1b0224b0ec60: "aha1542: rework locking" from Feb 6, 2015, > leads to the following static checker warning: > > drivers/scsi/aha1542.c:448 aha1542_queuecommand() > error: scheduling with locks held: 'spin_lock:host_lock' > > drivers/scsi/aha1542.c > 400 /* Use the outgoing mailboxes in a round-robin fashion, because this > 401 is how the host adapter will scan for them */ > 402 > 403 spin_lock_irqsave(sh->host_lock, flags); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Holding lock. > > 404 mbo = aha1542->aha1542_last_mbo_used + 1; > 405 if (mbo >= AHA1542_MAILBOXES) > 406 mbo = 0; > 407 > > [ snip ] > > 442 if (bufflen) { > 443 struct scatterlist *sg; > 444 struct chain *cptr; > 445 int i, sg_count = scsi_sg_count(cmd); > 446 > 447 ccb[mbo].op = 2; /* SCSI Initiator Command w/scatter-gather */ > 448 cmd->host_scribble = kmalloc(sizeof(*cptr)*sg_count, > 449 GFP_KERNEL | GFP_DMA); > ^^^^^^^^^^ > Sleeping allocation. Thanks, I missed that as it was already wrong before (since at least when DEF_SCSI_QCMD was introduced). And it worked despite that. Should I just change that to GFP_ATOMIC? -- Ondrej Zary -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html