From 36947e1f4deacec2a88bba226e9b46efebe8655e Mon Sep 17 00:00:00 2001 From: Ryan Libby Date: Sat, 21 Dec 2019 02:44:00 +0000 Subject: 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 --- sbin/camcontrol/camcontrol.c | 2 +- sys/sys/ata.h | 2 +- 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 -- cgit v1.2.3