]> www.infradead.org Git - users/sagi/libnvme.git/commit
ioctl: Fix struct nvme_get_log_args memberm alignment
authorDaniel Wagner <dwagner@suse.de>
Mon, 31 Jan 2022 08:17:50 +0000 (09:17 +0100)
committerDaniel Wagner <dwagner@suse.de>
Mon, 31 Jan 2022 08:17:50 +0000 (09:17 +0100)
commitf1af770aa33e2dcce122d2b5903b5fce35b2f6d4
treea0cbe4b1535614b7a555093435731c62060df161
parent3fba7be0e20823a51ab19ae7699bcefd134b31ff
ioctl: Fix struct nvme_get_log_args memberm alignment

Commit 781b9105cc43 ("nvme: Add Media Unit Status log page(LID:
0x10)") placed the domid member between two u8 members. The access
domid member would not be 16 bit aligned which is caused problems on
certain architectures. Let's fix the aligemnt by moving domid before
lsp. This give us following layout

struct nvme_get_log_args {
        int                        args_size;            /*     0     4 */
        int                        fd;                   /*     4     4 */
        __u32 *                    result;               /*     8     8 */
        __u32                      timeout;              /*    16     4 */
        enum nvme_cmd_get_log_lid  lid;                  /*    20     4 */
        __u64                      lpo;                  /*    24     8 */
        void *                     log;                  /*    32     8 */
        __u32                      len;                  /*    40     4 */
        __u32                      nsid;                 /*    44     4 */
        enum nvme_csi              csi;                  /*    48     4 */
        __u16                      lsi;                  /*    52     2 */
        __u16                      domid;                /*    54     2 */
        __u8                       lsp;                  /*    56     1 */
        __u8                       uuidx;                /*    57     1 */
        _Bool                      rae;                  /*    58     1 */
        _Bool                      ot;                   /*    59     1 */

        /* size: 64, cachelines: 1, members: 16 */
        /* padding: 4 */
} __attribute__((__aligned__(8)));

Signed-off-by: Daniel Wagner <dwagner@suse.de>
src/nvme/ioctl.h