From bd6f91937f29065ff7916c7109ba1e675a5498a4 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Thu, 13 Jan 2022 15:16:54 +0100 Subject: [PATCH] ioctl: Rearrange members in nvme_security_send_args Avoid any holes in the struct by rearranging the members. Also add the attribute packed to struct definition to reduce ABI breakage. struct nvme_security_send_args { int args_size; /* 0 4 */ int fd; /* 4 4 */ __u32 * result; /* 8 8 */ __u32 timeout; /* 16 4 */ __u32 nsid; /* 20 4 */ __u8 nssf; /* 24 1 */ __u8 spsp0; /* 25 1 */ __u8 spsp1; /* 26 1 */ __u8 secp; /* 27 1 */ __u32 tl; /* 28 4 */ void * data; /* 32 8 */ __u32 data_len; /* 40 4 */ /* size: 48, cachelines: 1, members: 12 */ /* padding: 4 */ /* last cacheline: 48 bytes */ } __attribute__((__aligned__(8))); Signed-off-by: Daniel Wagner --- src/nvme/ioctl.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index dd3185a7..c2ba2812 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -2924,31 +2924,31 @@ int nvme_fw_commit(struct nvme_fw_commit_args *args); /** * nvme_security_send_args - Arguments for the NVMe Security Send command * @fd: File descriptor of nvme device + * @result: The command completion result from CQE dword0 + * @timeout: Timeout in ms * @nsid: Namespace ID to issue security command on * @nssf: NVMe Security Specific field * @spsp0: Security Protocol Specific field * @spsp1: Security Protocol Specific field * @secp: Security Protocol * @tl: Protocol specific transfer length - * @data_len: Data length of the payload in bytes * @data: Security data payload to send - * @timeout: Timeout in ms - * @result: The command completion result from CQE dword0 + * @data_len: Data length of the payload in bytes */ struct nvme_security_send_args { int args_size; int fd; + __u32 *result; + __u32 timeout; __u32 nsid; __u8 nssf; __u8 spsp0; __u8 spsp1; __u8 secp; __u32 tl; - __u32 data_len; void *data; - __u32 timeout; - __u32 *result; -}; + __u32 data_len; +} __attribute__((packed, aligned(__alignof__(__u32*)))); /** * nvme_security_send() - -- 2.50.1