2020-12-31 12:07:10

by Tian Tao

[permalink] [raw]
Subject: [PATCH] vt: use flexible-array member instead of zero-length array

Use flexible-array member introduced in C99 instead of zero-length
array. Most of zero-length array was already taken care in previous
patch [1]. Now modified few more cases which were not handled earlier.

[1]. https://patchwork.kernel.org/patch/11394197/

Signed-off-by: Tian Tao <[email protected]>
---
drivers/tty/vt/vt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index d04a162..86b4c5f 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -332,7 +332,7 @@ typedef uint32_t char32_t;
* scrolling only implies some pointer shuffling.
*/
struct uni_screen {
- char32_t *lines[0];
+ char32_t *lines[];
};

static struct uni_screen *vc_uniscr_alloc(unsigned int cols, unsigned int rows)
--
2.7.4


2020-12-31 15:28:39

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] vt: use flexible-array member instead of zero-length array

On Thu, Dec 31, 2020 at 08:04:00PM +0800, Tian Tao wrote:
> Use flexible-array member introduced in C99 instead of zero-length
> array. Most of zero-length array was already taken care in previous
> patch [1]. Now modified few more cases which were not handled earlier.
>
> [1]. https://patchwork.kernel.org/patch/11394197/
>
> Signed-off-by: Tian Tao <[email protected]>
> ---
> drivers/tty/vt/vt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> index d04a162..86b4c5f 100644
> --- a/drivers/tty/vt/vt.c
> +++ b/drivers/tty/vt/vt.c
> @@ -332,7 +332,7 @@ typedef uint32_t char32_t;
> * scrolling only implies some pointer shuffling.
> */
> struct uni_screen {
> - char32_t *lines[0];
> + char32_t *lines[];

Are you _sure_ you can do this? What testing did you do?

thanks,

greg k-h

2020-12-31 15:29:06

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] vt: use flexible-array member instead of zero-length array

Hi Tian,

I love your patch! Yet something to improve:

[auto build test ERROR on tty/tty-testing]
[also build test ERROR on v5.11-rc1 next-20201223]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Tian-Tao/vt-use-flexible-array-member-instead-of-zero-length-array/20201231-200832
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
config: microblaze-randconfig-r015-20201231 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/c44b31ae1f6fc407170012bd6b5251e869299619
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tian-Tao/vt-use-flexible-array-member-instead-of-zero-length-array/20201231-200832
git checkout c44b31ae1f6fc407170012bd6b5251e869299619
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

>> drivers/tty/vt/vt.c:335:12: error: flexible array member in a struct with no named members
335 | char32_t *lines[];
| ^~~~~


vim +335 drivers/tty/vt/vt.c

329
330 /*
331 * Our screen buffer is preceded by an array of line pointers so that
332 * scrolling only implies some pointer shuffling.
333 */
334 struct uni_screen {
> 335 char32_t *lines[];
336 };
337

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (2.01 kB)
.config.gz (23.25 kB)
Download all attachments