Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c87fe72 authored by Scott Bauer's avatar Scott Bauer Committed by Jens Axboe
Browse files

Fix SED-OPAL UAPI structs to prevent 32/64 bit size differences.



This patch is a quick fixup of the user structures that will prevent
the structures from being different sizes on 32 and 64 bit archs.
Taking this fix will allow us to *NOT* have to do compat ioctls for
the sed code.

Signed-off-by: default avatarScott Bauer <scott.bauer@intel.com>
Fixes: 19641f2d ("Include: Uapi: Add user ABI for Sed/Opal")
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent a98e58e5
Loading
Loading
Loading
Loading
+18 −17
Original line number Diff line number Diff line
@@ -48,37 +48,38 @@ enum opal_lock_state {
};

struct opal_key {
	uint8_t	lr;
	uint8_t	key_len;
	char 	key[OPAL_KEY_MAX];
	__u8 lr;
	__u8 key_len;
	__u8 __align[6];
	__u8 key[OPAL_KEY_MAX];
};

struct opal_lr_act {
	int sum;
	uint8_t num_lrs;
	uint8_t lr[OPAL_MAX_LRS];
	struct opal_key key;
	__u32 sum;
	__u8    num_lrs;
	__u8 lr[OPAL_MAX_LRS];
	__u8 align[2]; /* Align to 8 byte boundary */
};

struct opal_session_info {
	int sum;
	enum opal_user who;
	__u32 sum;
	__u32 who;
	struct opal_key opal_key;
	uint8_t __align[2];
};

struct opal_user_lr_setup {
	size_t range_start;
	size_t range_length;
	int    RLE; /* Read Lock enabled */
	int    WLE; /* Write Lock Enabled */
	__u64 range_start;
	__u64 range_length;
	__u32 RLE; /* Read Lock enabled */
	__u32 WLE; /* Write Lock Enabled */
	struct opal_session_info session;
	uint8_t __align[4];
};

struct opal_lock_unlock {
	enum opal_lock_state l_state;
	struct opal_session_info session;
	__u32 l_state;
	__u8 __align[4];
};

struct opal_new_pw {
@@ -97,9 +98,9 @@ struct opal_new_pw {
};

struct opal_mbr_data {
	u8 enable_disable;
	struct opal_key key;
	uint8_t __align[5];
	__u8 enable_disable;
	__u8 __align[7];
};

#define IOC_OPAL_SAVE		    _IOW('p', 220, struct opal_lock_unlock)