Re: [PATCH] block: add support for shared tag maps

Christoph Hellwig
2006-09-18T18:47:34Z

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.