From 83479721e39f086bac6458c54cdfdba9ad035adf Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Thu, 13 Jan 2022 18:54:43 +0100 Subject: [PATCH] ioctl: Rearrange members in nvme_resv_acquire_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_resv_acquire_args { int args_size; /* 0 4 */ int fd; /* 4 4 */ __u32 * result; /* 8 8 */ __u32 timeout; /* 16 4 */ __u32 nsid; /* 20 4 */ enum nvme_resv_rtype rtype; /* 24 4 */ enum nvme_resv_racqa racqa; /* 28 4 */ __u64 crkey; /* 32 8 */ __u64 nrkey; /* 40 8 */ _Bool iekey; /* 48 1 */ /* size: 56, cachelines: 1, members: 10 */ /* padding: 7 */ /* last cacheline: 56 bytes */ } __attribute__((__aligned__(8))); Signed-off-by: Daniel Wagner --- src/nvme/ioctl.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index 81d1b1bb..24fd59de 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -3796,28 +3796,28 @@ int nvme_copy(struct nvme_copy_args *args); /** * nvme_resv_acquire_args - Arguments for the NVMe Reservation Acquire Comand * @fd: File descriptor of nvme device + * @result: The command completion result from CQE dword0 + * @timeout: Timeout in ms * @nsid: Namespace identifier * @rtype: The type of reservation to be create, see &enum nvme_resv_rtype * @racqa: The action that is performed by the command, see &enum nvme_resv_racqa - * @iekey: Set to ignore the existing key * @crkey: The current reservation key associated with the host * @nrkey: The reservation key to be unregistered from the namespace if - * the action is preempt - * @timeout: Timeout in ms - * @result: The command completion result from CQE dword0 + * the action is preempt + * @iekey: Set to ignore the existing key */ struct nvme_resv_acquire_args { int args_size; int fd; + __u32 *result; + __u32 timeout; __u32 nsid; enum nvme_resv_rtype rtype; enum nvme_resv_racqa racqa; - bool iekey; __u64 crkey; __u64 nrkey; - __u32 timeout; - __u32 *result; -}; + bool iekey; +} __attribute__((packed, aligned(__alignof__(__u64)))); /** * nvme_resv_acquire() - Send an nvme reservation acquire -- 2.50.1