aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew@wil.cx>2007-08-15 14:56:56 -0400
committerJames Bottomley <jejb@mulgrave.localdomain>2007-10-12 14:51:18 -0400
commitdffe807cdbc6d2409b9bcc87a9517bb7c0d25b65 (patch)
tree9d79c515ab15086a63146cfdd8dd271758b86118 /drivers
parent6fdea8dbbe4fc021afb601ef5339d5c5825c5cb6 (diff)
[SCSI] ncr53c8xx: Call scsi_host_put in release
Since ncr53c8xx_attach() calls scsi_host_put(), make ncr53c8xx_release() call scsi_host_put() too, for symmetry. Both callers already expect it to put the host for them, so that works out nicely. While the zalon driver does 'use' the host pointer afterwards, it only compares it for equality and doesn't dereference it, so that's safe. While I'm at it, get rid of pointless checks for NULL, use shost_priv() and change ncr53c8xx_release to return void. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/ncr53c8xx.c11
-rw-r--r--drivers/scsi/ncr53c8xx.h2
2 files changed, 5 insertions, 8 deletions
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
index 030ba49f33ff..91fa66c3ec98 100644
--- a/drivers/scsi/ncr53c8xx.c
+++ b/drivers/scsi/ncr53c8xx.c
@@ -8528,18 +8528,15 @@ struct Scsi_Host * __init ncr_attach(struct scsi_host_template *tpnt,
8528} 8528}
8529 8529
8530 8530
8531int ncr53c8xx_release(struct Scsi_Host *host) 8531void ncr53c8xx_release(struct Scsi_Host *host)
8532{ 8532{
8533 struct host_data *host_data; 8533 struct host_data *host_data = shost_priv(host);
8534#ifdef DEBUG_NCR53C8XX 8534#ifdef DEBUG_NCR53C8XX
8535 printk("ncr53c8xx: release\n"); 8535 printk("ncr53c8xx: release\n");
8536#endif 8536#endif
8537 if (!host) 8537 if (host_data->ncb)
8538 return 1;
8539 host_data = (struct host_data *)host->hostdata;
8540 if (host_data && host_data->ncb)
8541 ncr_detach(host_data->ncb); 8538 ncr_detach(host_data->ncb);
8542 return 1; 8539 scsi_host_put(host);
8543} 8540}
8544 8541
8545static void ncr53c8xx_set_period(struct scsi_target *starget, int period) 8542static void ncr53c8xx_set_period(struct scsi_target *starget, int period)
diff --git a/drivers/scsi/ncr53c8xx.h b/drivers/scsi/ncr53c8xx.h
index b39357d9af8d..0e008dacf679 100644
--- a/drivers/scsi/ncr53c8xx.h
+++ b/drivers/scsi/ncr53c8xx.h
@@ -1321,7 +1321,7 @@ struct ncr_device {
1321}; 1321};
1322 1322
1323extern struct Scsi_Host *ncr_attach(struct scsi_host_template *tpnt, int unit, struct ncr_device *device); 1323extern struct Scsi_Host *ncr_attach(struct scsi_host_template *tpnt, int unit, struct ncr_device *device);
1324extern int ncr53c8xx_release(struct Scsi_Host *host); 1324extern void ncr53c8xx_release(struct Scsi_Host *host);
1325irqreturn_t ncr53c8xx_intr(int irq, void *dev_id); 1325irqreturn_t ncr53c8xx_intr(int irq, void *dev_id);
1326extern int ncr53c8xx_init(void); 1326extern int ncr53c8xx_init(void);
1327extern void ncr53c8xx_exit(void); 1327extern void ncr53c8xx_exit(void);