aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/advansys.c2
-rw-r--r--drivers/scsi/qla1280.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c4
-rw-r--r--drivers/scsi/scsi_lib.c2
-rw-r--r--drivers/scsi/scsi_priv.h3
-rw-r--r--drivers/scsi/scsi_sysfs.c17
-rw-r--r--drivers/scsi/scsi_transport_srp.c3
8 files changed, 28 insertions, 7 deletions
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index a6676be87843..184c7ae78519 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -732,7 +732,7 @@ config SCSI_GDTH
732 This is a driver for RAID/SCSI Disk Array Controllers (EISA/ISA/PCI) 732 This is a driver for RAID/SCSI Disk Array Controllers (EISA/ISA/PCI)
733 manufactured by Intel Corporation/ICP vortex GmbH. It is documented 733 manufactured by Intel Corporation/ICP vortex GmbH. It is documented
734 in the kernel source in <file:drivers/scsi/gdth.c> and 734 in the kernel source in <file:drivers/scsi/gdth.c> and
735 <file:drivers/scsi/gdth.h.> 735 <file:drivers/scsi/gdth.h>.
736 736
737 To compile this driver as a module, choose M here: the 737 To compile this driver as a module, choose M here: the
738 module will be called gdth. 738 module will be called gdth.
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 9dd3952516c5..38a1ee2eacd8 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -13906,7 +13906,7 @@ static int advansys_release(struct Scsi_Host *shost)
13906 13906
13907#define ASC_IOADR_TABLE_MAX_IX 11 13907#define ASC_IOADR_TABLE_MAX_IX 11
13908 13908
13909static PortAddr _asc_def_iop_base[ASC_IOADR_TABLE_MAX_IX] __devinitdata = { 13909static PortAddr _asc_def_iop_base[ASC_IOADR_TABLE_MAX_IX] = {
13910 0x100, 0x0110, 0x120, 0x0130, 0x140, 0x0150, 0x0190, 13910 0x100, 0x0110, 0x120, 0x0130, 0x140, 0x0150, 0x0190,
13911 0x0210, 0x0230, 0x0250, 0x0330 13911 0x0210, 0x0230, 0x0250, 0x0330
13912}; 13912};
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 146d540f6281..288640756099 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -3041,7 +3041,6 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
3041 int cnt; 3041 int cnt;
3042 int req_cnt; 3042 int req_cnt;
3043 int seg_cnt; 3043 int seg_cnt;
3044 dma_addr_t dma_handle;
3045 u8 dir; 3044 u8 dir;
3046 3045
3047 ENTER("qla1280_32bit_start_scsi"); 3046 ENTER("qla1280_32bit_start_scsi");
@@ -3050,6 +3049,7 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
3050 cmd->cmnd[0]); 3049 cmd->cmnd[0]);
3051 3050
3052 /* Calculate number of entries and segments required. */ 3051 /* Calculate number of entries and segments required. */
3052 req_cnt = 1;
3053 seg_cnt = scsi_dma_map(cmd); 3053 seg_cnt = scsi_dma_map(cmd);
3054 if (seg_cnt) { 3054 if (seg_cnt) {
3055 /* 3055 /*
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index a5bcf1f390b3..8ecc0470b8f3 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1831,7 +1831,7 @@ probe_out:
1831 return ret; 1831 return ret;
1832} 1832}
1833 1833
1834static void __devexit 1834static void
1835qla2x00_remove_one(struct pci_dev *pdev) 1835qla2x00_remove_one(struct pci_dev *pdev)
1836{ 1836{
1837 scsi_qla_host_t *ha; 1837 scsi_qla_host_t *ha;
@@ -2965,7 +2965,7 @@ static struct pci_driver qla2xxx_pci_driver = {
2965 }, 2965 },
2966 .id_table = qla2xxx_pci_tbl, 2966 .id_table = qla2xxx_pci_tbl,
2967 .probe = qla2x00_probe_one, 2967 .probe = qla2x00_probe_one,
2968 .remove = __devexit_p(qla2x00_remove_one), 2968 .remove = qla2x00_remove_one,
2969 .err_handler = &qla2xxx_err_handler, 2969 .err_handler = &qla2xxx_err_handler,
2970}; 2970};
2971 2971
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 0e81e4cf8876..a9ac5b1b1667 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1332,7 +1332,7 @@ int scsi_prep_return(struct request_queue *q, struct request *req, int ret)
1332} 1332}
1333EXPORT_SYMBOL(scsi_prep_return); 1333EXPORT_SYMBOL(scsi_prep_return);
1334 1334
1335static int scsi_prep_fn(struct request_queue *q, struct request *req) 1335int scsi_prep_fn(struct request_queue *q, struct request *req)
1336{ 1336{
1337 struct scsi_device *sdev = q->queuedata; 1337 struct scsi_device *sdev = q->queuedata;
1338 int ret = BLKPREP_KILL; 1338 int ret = BLKPREP_KILL;
diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h
index eff005951895..3f34e9376b0a 100644
--- a/drivers/scsi/scsi_priv.h
+++ b/drivers/scsi/scsi_priv.h
@@ -74,6 +74,9 @@ extern struct request_queue *scsi_alloc_queue(struct scsi_device *sdev);
74extern void scsi_free_queue(struct request_queue *q); 74extern void scsi_free_queue(struct request_queue *q);
75extern int scsi_init_queue(void); 75extern int scsi_init_queue(void);
76extern void scsi_exit_queue(void); 76extern void scsi_exit_queue(void);
77struct request_queue;
78struct request;
79extern int scsi_prep_fn(struct request_queue *, struct request *);
77 80
78/* scsi_proc.c */ 81/* scsi_proc.c */
79#ifdef CONFIG_SCSI_PROC_FS 82#ifdef CONFIG_SCSI_PROC_FS
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index f374fdcb6815..00b386677392 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -373,12 +373,29 @@ static int scsi_bus_resume(struct device * dev)
373 return err; 373 return err;
374} 374}
375 375
376static int scsi_bus_remove(struct device *dev)
377{
378 struct device_driver *drv = dev->driver;
379 struct scsi_device *sdev = to_scsi_device(dev);
380 int err = 0;
381
382 /* reset the prep_fn back to the default since the
383 * driver may have altered it and it's being removed */
384 blk_queue_prep_rq(sdev->request_queue, scsi_prep_fn);
385
386 if (drv && drv->remove)
387 err = drv->remove(dev);
388
389 return 0;
390}
391
376struct bus_type scsi_bus_type = { 392struct bus_type scsi_bus_type = {
377 .name = "scsi", 393 .name = "scsi",
378 .match = scsi_bus_match, 394 .match = scsi_bus_match,
379 .uevent = scsi_bus_uevent, 395 .uevent = scsi_bus_uevent,
380 .suspend = scsi_bus_suspend, 396 .suspend = scsi_bus_suspend,
381 .resume = scsi_bus_resume, 397 .resume = scsi_bus_resume,
398 .remove = scsi_bus_remove,
382}; 399};
383 400
384int scsi_sysfs_register(void) 401int scsi_sysfs_register(void)
diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
index 44a340bd937b..65c584db33bd 100644
--- a/drivers/scsi/scsi_transport_srp.c
+++ b/drivers/scsi/scsi_transport_srp.c
@@ -265,7 +265,8 @@ EXPORT_SYMBOL_GPL(srp_rport_del);
265 265
266static int do_srp_rport_del(struct device *dev, void *data) 266static int do_srp_rport_del(struct device *dev, void *data)
267{ 267{
268 srp_rport_del(dev_to_rport(dev)); 268 if (scsi_is_srp_rport(dev))
269 srp_rport_del(dev_to_rport(dev));
269 return 0; 270 return 0;
270} 271}
271 272