powerpc/pseries/papr-sysparm: use u8 arrays for payloads
authorNathan Lynch <nathanl@linux.ibm.com>
Sat, 3 Feb 2024 00:26:46 +0000 (18:26 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 5 Feb 2024 06:01:25 +0000 (17:01 +1100)
Some PAPR system parameter values are formatted by firmware as
nul-terminated strings (e.g. LPAR name, shared processor attributes).
But the values returned for other parameters, such as processor module
info and TLB block invalidate characteristics, are binary data with
parameter-specific layouts. So char[] isn't the appropriate type for
the general case. Use u8/__u8.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Fixes: 905b9e48786e ("powerpc/pseries/papr-sysparm: Expose character device to user space")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240202-papr-sysparm-ioblock-data-use-u8-v1-1-f5c6c89f65ec@linux.ibm.com
arch/powerpc/include/asm/papr-sysparm.h
arch/powerpc/include/uapi/asm/papr-sysparm.h

index 0dbbff59101d6f31d4ac9f59c2fa74a7d4e90cae..c3cd5b131033eb3ef5c8fc1e99f0a8da0b78157a 100644 (file)
@@ -32,7 +32,7 @@ typedef struct {
  */
 struct papr_sysparm_buf {
        __be16 len;
-       char val[PAPR_SYSPARM_MAX_OUTPUT];
+       u8 val[PAPR_SYSPARM_MAX_OUTPUT];
 };
 
 struct papr_sysparm_buf *papr_sysparm_buf_alloc(void);
index 9f9a0f267ea57c2593448bcfbd0af4f4f0582f08..f733467b1534eb9bf3dad20042b06afd85ab8f41 100644 (file)
@@ -14,7 +14,7 @@ enum {
 struct papr_sysparm_io_block {
        __u32 parameter;
        __u16 length;
-       char data[PAPR_SYSPARM_MAX_OUTPUT];
+       __u8 data[PAPR_SYSPARM_MAX_OUTPUT];
 };
 
 /**