> The problem is that blk_peek_request() calls scsi_prep_fn(), which > does this: > > struct scsi_device *sdev = q->queuedata; > int ret = BLKPREP_KILL; > > if (req->cmd_type == REQ_TYPE_BLOCK_PC) > ret = scsi_setup_blk_pc_cmnd(sdev, req); > return scsi_prep_return(q, req, ret); > > It doesn't check to see if sdev is NULL, nor does > scsi_setup_blk_pc_cmnd(). That accounts for this error: I actually added a NULL check in scsi_setup_blk_pc_cmnd early on, but that just caused RCU CPU stalls afterwards and then eventually a hung system. -Andi -- 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