diff options
author | Tejun Heo <htejun@gmail.com> | 2006-03-18 04:40:14 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-03-21 14:07:05 -0500 |
commit | 30afc84cf7325e88fb9746340eba3c161080ff49 (patch) | |
tree | 829ea31d6ab095bd7a35651cd6018205a2b21d11 /drivers/scsi/libata-scsi.c | |
parent | d04cdb64212eb5ae6a98026a97dda626e40e8e9a (diff) |
[SCSI] libata: implement minimal transport template for ->eh_timed_out
SCSI midlayer has moved hostt->eh_timed_out to transport template. As
libata doesn't need full-blown transport support yet, implement
minimal transport for libata. No transport class or whatsoever, just
empty transport template with ->eh_timed_out hook.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/libata-scsi.c')
-rw-r--r-- | drivers/scsi/libata-scsi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index ccedb4536977..bd9f2176f79a 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <scsi/scsi_eh.h> | 41 | #include <scsi/scsi_eh.h> |
42 | #include <scsi/scsi_device.h> | 42 | #include <scsi/scsi_device.h> |
43 | #include <scsi/scsi_request.h> | 43 | #include <scsi/scsi_request.h> |
44 | #include <scsi/scsi_transport.h> | ||
44 | #include <linux/libata.h> | 45 | #include <linux/libata.h> |
45 | #include <linux/hdreg.h> | 46 | #include <linux/hdreg.h> |
46 | #include <asm/uaccess.h> | 47 | #include <asm/uaccess.h> |
@@ -52,6 +53,7 @@ | |||
52 | typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *qc, const u8 *scsicmd); | 53 | typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *qc, const u8 *scsicmd); |
53 | static struct ata_device * | 54 | static struct ata_device * |
54 | ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev); | 55 | ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev); |
56 | enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd); | ||
55 | 57 | ||
56 | #define RW_RECOVERY_MPAGE 0x1 | 58 | #define RW_RECOVERY_MPAGE 0x1 |
57 | #define RW_RECOVERY_MPAGE_LEN 12 | 59 | #define RW_RECOVERY_MPAGE_LEN 12 |
@@ -92,6 +94,14 @@ static const u8 def_control_mpage[CONTROL_MPAGE_LEN] = { | |||
92 | 0, 30 /* extended self test time, see 05-359r1 */ | 94 | 0, 30 /* extended self test time, see 05-359r1 */ |
93 | }; | 95 | }; |
94 | 96 | ||
97 | /* | ||
98 | * libata transport template. libata doesn't do real transport stuff. | ||
99 | * It just needs the eh_timed_out hook. | ||
100 | */ | ||
101 | struct scsi_transport_template ata_scsi_transport_template = { | ||
102 | .eh_timed_out = ata_scsi_timed_out, | ||
103 | }; | ||
104 | |||
95 | 105 | ||
96 | static void ata_scsi_invalid_field(struct scsi_cmnd *cmd, | 106 | static void ata_scsi_invalid_field(struct scsi_cmnd *cmd, |
97 | void (*done)(struct scsi_cmnd *)) | 107 | void (*done)(struct scsi_cmnd *)) |