aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2006-09-01 09:28:48 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-09-02 13:57:28 -0500
commitdeb81d80ba27da8dfabc29ccb5977db8f4942a0a (patch)
treeb4776d0eb64c1e849a40870192e9c90abd773f66
parentcf355883f506051a8ce3ac4539752829320b6c8c (diff)
[SCSI] add failure return to scsi_init_shared_tag_map()
And use it in the stex driver. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/stex.c5
-rw-r--r--include/scsi/scsi_tcq.h3
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 15fb99f224e..3cf3106a29b 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -1108,9 +1108,8 @@ stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (err)
goto out_free_irq;
- scsi_init_shared_tag_map(host, ST_CAN_QUEUE);
- if (host->bqt == NULL) {
- err = -ENOMEM;
+ err = scsi_init_shared_tag_map(host, ST_CAN_QUEUE);
+ if (err) {
printk(KERN_ERR DRV_NAME "(%s): init shared queue failed\n",
pci_name(pdev));
goto out_free_irq;
diff --git a/include/scsi/scsi_tcq.h b/include/scsi/scsi_tcq.h
index 4eea254b1ce..d04d05adfa9 100644
--- a/include/scsi/scsi_tcq.h
+++ b/include/scsi/scsi_tcq.h
@@ -138,9 +138,10 @@ static inline struct scsi_cmnd *scsi_find_tag(struct scsi_device *sdev, int tag)
* @shost: the host to share the tag map among all devices
* @depth: the total depth of the map
*/
-static inline void scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth)
+static inline int scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth)
{
shost->bqt = blk_init_tags(depth);
+ return shost->bqt ? 0 : -ENOMEM;
}
#endif /* _SCSI_SCSI_TCQ_H */