[SCSI] add failure return to scsi_init_shared_tag_map()
authorJames Bottomley <James.Bottomley@steeleye.com>
Fri, 1 Sep 2006 13:28:48 +0000 (09:28 -0400)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Sat, 2 Sep 2006 18:57:28 +0000 (13:57 -0500)
And use it in the stex driver.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/stex.c
include/scsi/scsi_tcq.h

index 15fb99f..3cf3106 100644 (file)
@@ -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;
index 4eea254..d04d05a 100644 (file)
@@ -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 */