Index: sys/dev/nvme/nvme.h =================================================================== --- sys/dev/nvme/nvme.h +++ sys/dev/nvme/nvme.h @@ -614,7 +614,7 @@ uint32_t cdw13; /* command-specific */ uint32_t cdw14; /* command-specific */ uint32_t cdw15; /* command-specific */ -} __packed; +}; _Static_assert(sizeof(struct nvme_command) == 16 * 4, "bad size for nvme_command"); @@ -632,7 +632,7 @@ /* dword 3 */ uint16_t cid; /* command identifier */ uint16_t status; -} __packed; +} __aligned(16); _Static_assert(sizeof(struct nvme_completion) == 4 * 4, "bad size for nvme_completion"); @@ -640,7 +640,7 @@ uint32_t attributes; uint32_t length; uint64_t starting_lba; -} __packed; +} __aligned(16); /* Largest DSM Trim that can be done */ #define NVME_MAX_DSM_TRIM 4096