diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2007-03-02 19:55:54 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-03-11 12:39:27 -0400 |
commit | bc7e380a6a4c94f79a49c36bdb28062a750b3c2b (patch) | |
tree | c5ae13015fd0f7f15e9dbf16f865a11d0c495f3b /drivers/scsi/scsi_tgt_priv.h | |
parent | 181011e04a2a32f8d5df212254239ac9a3c8ab5e (diff) |
[SCSI] tgt: fix sesnse buffer problems
This patch simplify the way to notify LLDs of the command completion
and addresses the following sense buffer problems:
- can't handle both data and sense.
- forces user-space to use aligned sense buffer
tgt copies sense_data from userspace to cmnd->sense_buffer (if
necessary), maps user-space pages (if necessary) and then calls
host->transfer_response (host->transfer_data is removed).
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi_tgt_priv.h')
-rw-r--r-- | drivers/scsi/scsi_tgt_priv.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_tgt_priv.h b/drivers/scsi/scsi_tgt_priv.h index 84488c51ff62..e9e6db1c417f 100644 --- a/drivers/scsi/scsi_tgt_priv.h +++ b/drivers/scsi/scsi_tgt_priv.h | |||
@@ -18,8 +18,9 @@ extern int scsi_tgt_if_init(void); | |||
18 | extern int scsi_tgt_uspace_send_cmd(struct scsi_cmnd *cmd, struct scsi_lun *lun, | 18 | extern int scsi_tgt_uspace_send_cmd(struct scsi_cmnd *cmd, struct scsi_lun *lun, |
19 | u64 tag); | 19 | u64 tag); |
20 | extern int scsi_tgt_uspace_send_status(struct scsi_cmnd *cmd, u64 tag); | 20 | extern int scsi_tgt_uspace_send_status(struct scsi_cmnd *cmd, u64 tag); |
21 | extern int scsi_tgt_kspace_exec(int host_no, u64 tag, int result, u32 len, | 21 | extern int scsi_tgt_kspace_exec(int host_no, int result, u64 tag, |
22 | unsigned long uaddr, u8 rw); | 22 | unsigned long uaddr, u32 len, unsigned long sense_uaddr, |
23 | u32 sense_len, u8 rw); | ||
23 | extern int scsi_tgt_uspace_send_tsk_mgmt(int host_no, int function, u64 tag, | 24 | extern int scsi_tgt_uspace_send_tsk_mgmt(int host_no, int function, u64 tag, |
24 | struct scsi_lun *scsilun, void *data); | 25 | struct scsi_lun *scsilun, void *data); |
25 | extern int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 mid, int result); | 26 | extern int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 mid, int result); |