Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/pseries/papr-sysparm: use u8 arrays for payloads

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

authored by

Nathan Lynch and committed by
Michael Ellerman
8ded03ae 41bccc98

+2 -2
+1 -1
arch/powerpc/include/asm/papr-sysparm.h
··· 32 32 */ 33 33 struct papr_sysparm_buf { 34 34 __be16 len; 35 - char val[PAPR_SYSPARM_MAX_OUTPUT]; 35 + u8 val[PAPR_SYSPARM_MAX_OUTPUT]; 36 36 }; 37 37 38 38 struct papr_sysparm_buf *papr_sysparm_buf_alloc(void);
+1 -1
arch/powerpc/include/uapi/asm/papr-sysparm.h
··· 14 14 struct papr_sysparm_io_block { 15 15 __u32 parameter; 16 16 __u16 length; 17 - char data[PAPR_SYSPARM_MAX_OUTPUT]; 17 + __u8 data[PAPR_SYSPARM_MAX_OUTPUT]; 18 18 }; 19 19 20 20 /**