aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-scsi.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-03-18 04:40:14 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-21 14:07:05 -0500
commit30afc84cf7325e88fb9746340eba3c161080ff49 (patch)
tree829ea31d6ab095bd7a35651cd6018205a2b21d11 /drivers/scsi/libata-scsi.c
parentd04cdb64212eb5ae6a98026a97dda626e40e8e9a (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.c10
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 @@
52typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *qc, const u8 *scsicmd); 53typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *qc, const u8 *scsicmd);
53static struct ata_device * 54static struct ata_device *
54ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev); 55ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev);
56enum 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 */
101struct scsi_transport_template ata_scsi_transport_template = {
102 .eh_timed_out = ata_scsi_timed_out,
103};
104
95 105
96static void ata_scsi_invalid_field(struct scsi_cmnd *cmd, 106static void ata_scsi_invalid_field(struct scsi_cmnd *cmd,
97 void (*done)(struct scsi_cmnd *)) 107 void (*done)(struct scsi_cmnd *))