svn commit: r342528 - head/sys/dev/mpr

Kashyap D Desai kadesai at FreeBSD.org
Wed Dec 26 10:39:23 UTC 2018


Author: kadesai
Date: Wed Dec 26 10:39:22 2018
New Revision: 342528
URL: https://svnweb.freebsd.org/changeset/base/342528

Log:
  Copy back the Sense data at proper location expected by the application
  
  typedef struct mps_pass_thru
  {
                 uint64_t               PtrRequest;
                 uint64_t               PtrReply;
                 uint64_t               PtrData;
                 uint32_t               RequestSize;
                 uint32_t               ReplySize;
                 uint32_t               DataSize;
                 uint32_t               DataDirection;
                 uint64_t               PtrDataOut;
                 uint32_t               DataOutSize;
                 uint32_t               Timeout;
  } mps_pass_thru_t, * ptrmpssas_pass_thru_t;
  
  In the above mps_pass_thru structure; Application expects PrtReply buffer
  should contain both MPI reply followed by sense data. So, updated driver
  to copy sense data at PtrReply + sizeof(MPI2 reply) location where
  application wants the driver to copy back the sense data info.
  
  Submitted by: Sreekanth Reddy <sreekanth.reddy at broadcom.com>
  Reviewed by:  Kashyap Desai <Kashyap.Desai at broadcom.com>
  Approved by:  ken
  MFC after:  3 days
  Sponsored by:   Broadcom Inc

Modified:
  head/sys/dev/mpr/mpr_user.c

Modified: head/sys/dev/mpr/mpr_user.c
==============================================================================
--- head/sys/dev/mpr/mpr_user.c	Wed Dec 26 10:38:51 2018	(r342527)
+++ head/sys/dev/mpr/mpr_user.c	Wed Dec 26 10:39:22 2018	(r342528)
@@ -1106,7 +1106,8 @@ mpr_user_pass_thru(struct mpr_softc *sc, mpr_pass_thru
 				    SenseCount)), sizeof(struct
 				    scsi_sense_data));
 				mpr_unlock(sc);
-				copyout(cm->cm_sense, cm->cm_req + 64,
+				copyout(cm->cm_sense,
+				    (PTRIN(data->PtrReply + sizeof(MPI2_SCSI_IO_REPLY))),
 				    sense_len);
 				mpr_lock(sc);
 			}
@@ -1140,7 +1141,9 @@ mpr_user_pass_thru(struct mpr_softc *sc, mpr_pass_thru
 			sz = MIN(le32toh(nvme_error_reply->ErrorResponseCount),
 			    NVME_ERROR_RESPONSE_SIZE);
 			mpr_unlock(sc);
-			copyout(cm->cm_sense, cm->nvme_error_response, sz);
+			copyout(cm->cm_sense,
+			    (PTRIN(data->PtrReply +
+			    sizeof(MPI2_SCSI_IO_REPLY))), sz);
 			mpr_lock(sc);
 		}
 	}


More information about the svn-src-all mailing list