summaryrefslogtreecommitdiffstats
path: root/sys/dev/mpr/mpr_sas.c
diff options
context:
space:
mode:
authorken <ken@FreeBSD.org>2015-02-26 20:46:16 +0000
committerken <ken@FreeBSD.org>2015-02-26 20:46:16 +0000
commita5cd9b061e9e3c6fece2214d16f093bda15f44eb (patch)
tree72864f1c2f01660c7067f2ee8559ca6479a713ee /sys/dev/mpr/mpr_sas.c
parentacb7a45ef0298469fc01a1adb6ef6cf280b3f181 (diff)
downloadFreeBSD-src-a5cd9b061e9e3c6fece2214d16f093bda15f44eb.zip
FreeBSD-src-a5cd9b061e9e3c6fece2214d16f093bda15f44eb.tar.gz
MFC r278964:
The __FreeBSD_version was changed to 1001510 to be appropriate for stable/10. I will followup with a commit to mpr(4) and mps(4) in head to reflect the stable/10 __FreeBSD_version and merge the change back to stable/10. ------------------------------------------------------------------------ r278964 | ken | 2015-02-18 11:30:19 -0700 (Wed, 18 Feb 2015) | 46 lines Make sure that the flags for the XPT_DEV_ADVINFO CCB are initialized properly. If there is garbage in the flags field, it can sometimes include a set CDAI_FLAG_STORE flag, which may cause either an error or perhaps result in overwriting the field that was intended to be read. sys/cam/cam_ccb.h: Add a new flag to the XPT_DEV_ADVINFO CCB, CDAI_FLAG_NONE, that callers can use to set the flags field when no store is desired. sys/cam/scsi/scsi_enc_ses.c: In ses_setphyspath_callback(), explicitly set the XPT_DEV_ADVINFO flags to CDAI_FLAG_NONE when fetching the physical path information. Instead of ORing in the CDAI_FLAG_STORE flag when storing the physical path, set the flags field to CDAI_FLAG_STORE. sys/cam/scsi/scsi_sa.c: Set the XPT_DEV_ADVINFO flags field to CDAI_FLAG_NONE when fetching extended inquiry information. sys/cam/scsi/scsi_da.c: When storing extended READ CAPACITY information, set the XPT_DEV_ADVINFO flags field to CDAI_FLAG_STORE instead of ORing it into a field that isn't initialized. sys/dev/mpr/mpr_sas.c, sys/dev/mps/mps_sas.c: When fetching extended READ CAPACITY information, set the XPT_DEV_ADVINFO flags field to CDAI_FLAG_NONE instead of setting it to 0. sbin/camcontrol/camcontrol.c: When fetching a device ID, set the XPT_DEV_ADVINFO flags field to CDAI_FLAG_NONE instead of 0. sys/sys/param.h: Bump __FreeBSD_version to 1100061 for the new XPT_DEV_ADVINFO CCB flag, CDAI_FLAG_NONE. Sponsored by: Spectra Logic
Diffstat (limited to 'sys/dev/mpr/mpr_sas.c')
-rw-r--r--sys/dev/mpr/mpr_sas.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/mpr/mpr_sas.c b/sys/dev/mpr/mpr_sas.c
index 216d314..9da1dd5 100644
--- a/sys/dev/mpr/mpr_sas.c
+++ b/sys/dev/mpr/mpr_sas.c
@@ -3084,7 +3084,11 @@ mprsas_async(void *callback_arg, uint32_t code, struct cam_path *path,
cdai.ccb_h.func_code = XPT_DEV_ADVINFO;
cdai.ccb_h.flags = CAM_DIR_IN;
cdai.buftype = CDAI_TYPE_RCAPLONG;
+#if __FreeBSD_version >= 1100061
+ cdai.flags = CDAI_FLAG_NONE;
+#else
cdai.flags = 0;
+#endif
cdai.bufsiz = sizeof(rcap_buf);
cdai.buf = (uint8_t *)&rcap_buf;
xpt_action((union ccb *)&cdai);
OpenPOWER on IntegriCloud