summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorambrisko <ambrisko@FreeBSD.org>2008-11-13 17:13:16 +0000
committerambrisko <ambrisko@FreeBSD.org>2008-11-13 17:13:16 +0000
commit49e7633cf7e7fedd6c90ed91d279825c9aa94918 (patch)
treeaeb5c8580abba131c01ee5931e370a1068e7314c /sys
parente5806365f9f865bef7287adb036914d6dd28f860 (diff)
downloadFreeBSD-src-49e7633cf7e7fedd6c90ed91d279825c9aa94918.zip
FreeBSD-src-49e7633cf7e7fedd6c90ed91d279825c9aa94918.tar.gz
One more piece to add to make sense data work for a user app. from LSI.
Submitted by: LSI MFC after: 3 days
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/mfi/mfi.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/mfi/mfi.c b/sys/dev/mfi/mfi.c
index 5f1bf55..f8b9e44 100644
--- a/sys/dev/mfi/mfi.c
+++ b/sys/dev/mfi/mfi.c
@@ -2069,6 +2069,11 @@ mfi_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, d_thread_t *td)
if (cm->cm_frame->header.cmd == MFI_CMD_DCMD)
locked = mfi_config_lock(sc, cm->cm_frame->dcmd.opcode);
+ if (cm->cm_frame->header.cmd == MFI_CMD_PD_SCSI_IO) {
+ cm->cm_frame->pass.sense_addr_lo = cm->cm_sense_busaddr;
+ cm->cm_frame->pass.sense_addr_hi = 0;
+ }
+
mtx_lock(&sc->mfi_io_lock);
error = mfi_check_command_pre(sc, cm);
if (error) {
@@ -2305,6 +2310,11 @@ mfi_linux_ioctl_int(struct cdev *dev, u_long cmd, caddr_t arg, int flag, d_threa
if (cm->cm_frame->header.cmd == MFI_CMD_DCMD)
locked = mfi_config_lock(sc, cm->cm_frame->dcmd.opcode);
+ if (cm->cm_frame->header.cmd == MFI_CMD_PD_SCSI_IO) {
+ cm->cm_frame->pass.sense_addr_lo = cm->cm_sense_busaddr;
+ cm->cm_frame->pass.sense_addr_hi = 0;
+ }
+
mtx_lock(&sc->mfi_io_lock);
error = mfi_check_command_pre(sc, cm);
if (error) {
OpenPOWER on IntegriCloud