diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/Kconfig | 2 | ||||
-rw-r--r-- | drivers/scsi/advansys.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla1280.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 4 | ||||
-rw-r--r-- | drivers/scsi/scsi_lib.c | 2 | ||||
-rw-r--r-- | drivers/scsi/scsi_priv.h | 3 | ||||
-rw-r--r-- | drivers/scsi/scsi_sysfs.c | 17 | ||||
-rw-r--r-- | drivers/scsi/scsi_transport_srp.c | 3 |
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 | ||
13909 | static PortAddr _asc_def_iop_base[ASC_IOADR_TABLE_MAX_IX] __devinitdata = { | 13909 | static 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 | ||
1834 | static void __devexit | 1834 | static void |
1835 | qla2x00_remove_one(struct pci_dev *pdev) | 1835 | qla2x00_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 | } |
1333 | EXPORT_SYMBOL(scsi_prep_return); | 1333 | EXPORT_SYMBOL(scsi_prep_return); |
1334 | 1334 | ||
1335 | static int scsi_prep_fn(struct request_queue *q, struct request *req) | 1335 | int 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); | |||
74 | extern void scsi_free_queue(struct request_queue *q); | 74 | extern void scsi_free_queue(struct request_queue *q); |
75 | extern int scsi_init_queue(void); | 75 | extern int scsi_init_queue(void); |
76 | extern void scsi_exit_queue(void); | 76 | extern void scsi_exit_queue(void); |
77 | struct request_queue; | ||
78 | struct request; | ||
79 | extern 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 | ||
376 | static 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 | |||
376 | struct bus_type scsi_bus_type = { | 392 | struct 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 | ||
384 | int scsi_sysfs_register(void) | 401 | int 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 | ||
266 | static int do_srp_rport_del(struct device *dev, void *data) | 266 | static 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 | ||