On Sat, Feb 26, 2022 at 12:43 AM <broonie@xxxxxxxxxx> wrote: > > Hi all, > > After merging the drm tree, today's linux-next build (x86 allmodconfig) > failed like this: > > lib/strncpy_from_user.o: warning: objtool: strncpy_from_user()+0x10b: call to do_strncpy_from_user() with UACCESS enabled > lib/strnlen_user.o: warning: objtool: strnlen_user()+0xbb: call to do_strnlen_user() with UACCESS enabled > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c: In function 'receive_timing_debugfs_show': > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3077:23: error: array subscript 4096 is outside array bounds of 'u8[200]' {aka 'unsigned char[200]'} [-Werror=array-bounds] > 3077 | u8 *str = read_buf, *end = read_buf + PAGE_SIZE; > | ^~~ > /tmp/next/build/drivers/gpu/drm/bridge/ite-it6505.c:3076:5: note: while referencing 'read_buf' > 3076 | u8 read_buf[READ_BUFFER_SIZE]; > | ^~~~~~~~ > cc1: all warnings being treated as errors > > Caused by commit > > b5c84a9edcd418 ("drm/bridge: add it6505 driver") > > I have used the drm tree from yesterday instead. hi all, The following fix should be able to address the errors. Should it be squashed into b5c84a9edcd418 ("drm/bridge: add it6505 driver")? diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c index fb16a176822d81..f2f101220ade94 100644 --- a/drivers/gpu/drm/bridge/ite-it6505.c +++ b/drivers/gpu/drm/bridge/ite-it6505.c @@ -289,7 +289,7 @@ #define WORD_LENGTH_20BIT 2 #define WORD_LENGTH_24BIT 3 #define DEBUGFS_DIR_NAME "it6505-debugfs" -#define READ_BUFFER_SIZE 200 +#define READ_BUFFER_SIZE 400 /* Vendor option */ #define HDCP_DESIRED 1 @@ -3074,7 +3074,7 @@ static ssize_t receive_timing_debugfs_show(struct file *file, char __user *buf, struct it6505 *it6505 = file->private_data; struct drm_display_mode *vid = &it6505->video_info; u8 read_buf[READ_BUFFER_SIZE]; - u8 *str = read_buf, *end = read_buf + PAGE_SIZE; + u8 *str = read_buf, *end = read_buf + READ_BUFFER_SIZE; ssize_t ret, count; if (!it6505)