aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Libby <rlibby@FreeBSD.org>2019-12-21 02:44:00 +0000
committerRyan Libby <rlibby@FreeBSD.org>2019-12-21 02:44:00 +0000
commit36947e1f4deacec2a88bba226e9b46efebe8655e (patch)
tree0af2b1ea3ba201045077e82f1805ea27ef22cbc9
parentfc41af14c8298c88d5a2bee85ecf1864a3d37a51 (diff)
downloadsrc-36947e1f4deacec2a88bba226e9b46efebe8655e.tar.gz
src-36947e1f4deacec2a88bba226e9b46efebe8655e.zip
Declare packed struct ata_params as 2-byte-aligned
This avoids gcc9 warning about unaligned access to the structure when casting to uint16_t pointer type. Submitted by: imp Reviewed by: imp Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D22888
Notes
Notes: svn path=/head/; revision=355972
-rw-r--r--sbin/camcontrol/camcontrol.c2
-rw-r--r--sys/sys/ata.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/sbin/camcontrol/camcontrol.c b/sbin/camcontrol/camcontrol.c
index 4266c35ee033..79ab12e196bb 100644
--- a/sbin/camcontrol/camcontrol.c
+++ b/sbin/camcontrol/camcontrol.c
@@ -2355,7 +2355,7 @@ ataidentify(struct cam_device *device, int retry_count, int timeout)
if (arglist & CAM_ARG_VERBOSE) {
printf("%s%d: Raw identify data:\n",
device->device_name, device->dev_unit_num);
- dump_data((void*)ident_buf, sizeof(struct ata_params));
+ dump_data((uint16_t *)ident_buf, sizeof(struct ata_params));
}
if (ident_buf->support.command1 & ATA_SUPPORT_PROTECTED) {
diff --git a/sys/sys/ata.h b/sys/sys/ata.h
index 22edb5573d1a..82d180b54919 100644
--- a/sys/sys/ata.h
+++ b/sys/sys/ata.h
@@ -311,7 +311,7 @@ struct ata_params {
/*223*/ u_int16_t transport_minor;
u_int16_t reserved224[31];
/*255*/ u_int16_t integrity;
-} __packed;
+} __packed __aligned(2);
/* ATA Dataset Management */
#define ATA_DSM_BLK_SIZE 512