]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: s5k5baf: drop 'data' field in struct s5k5baf_fw
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 8 Oct 2020 11:59:11 +0000 (13:59 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 8 Oct 2020 12:13:28 +0000 (14:13 +0200)
struct s5k5baf_fw ends with this:

       struct {
               u16 id;
               u16 offset;
       } seq[0];
       u16 data[];
};

which is rather confusing and can cause gcc warnings:

s5k5baf.c: In function 's5k5baf_load_setfile.isra':
s5k5baf.c:390:13: warning: array subscript 65535 is outside the bounds of an interior zero-length array 'struct <anonymous>[0]' [-Wzero-length-bounds]
  390 |   if (f->seq[i].offset + d <= end)
      |       ~~~~~~^~~

It turns out that 'data[]' is used in only one place and it can
easily be replaced by &fw->seq[0].id and 'seq[0]' can be replaced by
'seq[]'.

This is both more readable and solved that warnings.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Sylwester Nawrocki <snawrocki@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/s5k5baf.c

index 42584a0882738fb98bc59510c269d1bbdf4c1d83..ec6f22efe19ad5cc4c2bc621ee94bcd105eba5fb 100644 (file)
@@ -280,8 +280,7 @@ struct s5k5baf_fw {
        struct {
                u16 id;
                u16 offset;
-       } seq[0];
-       u16 data[];
+       } seq[];
 };
 
 struct s5k5baf {
@@ -563,7 +562,7 @@ static u16 *s5k5baf_fw_get_seq(struct s5k5baf *state, u16 seq_id)
        if (fw == NULL)
                return NULL;
 
-       data = fw->data + 2 * fw->count;
+       data = &fw->seq[0].id + 2 * fw->count;
 
        for (i = 0; i < fw->count; ++i) {
                if (fw->seq[i].id == seq_id)