On Fri, Sep 01, 2006 at 02:31:51PM +0800, Ed Lin wrote: > static int > +stex_slave_alloc(struct scsi_device *sdev) > +{ > + /* Cheat: usually extracted from Inquiry data */ > + sdev->tagged_supported = 1; > + > + scsi_activate_tcq(sdev, sdev->host->can_queue); these two calls look wrong here. scsi_activate_tcq is supposed to be called from slave_configure. similarly tagged_supported is probably going to be overwriten as part of the scanning process, but you already set it in slave_configure anyway. > + tag = cmd->request->tag; > + > + if (unlikely(tag >= host->can_queue)) > return SCSI_MLQUEUE_HOST_BUSY; Do we really need this check? I'm pretty sure the block layer never hands out tags bigger than what you told it to with scsi_activate_tcq. - 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