Re: [PATCHv2 1/3] s5k5baf: drop 'data' field in struct s5k5baf_fw

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2020-10-08 at 13:59 +0200, Hans Verkuil wrote:
> 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@xxxxxxxxx>
> Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
> Cc: Sylwester Nawrocki <snawrocki@xxxxxxxxxx>
> ---
>  drivers/media/i2c/s5k5baf.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c
> index 42584a088273..ec6f22efe19a 100644
> --- a/drivers/media/i2c/s5k5baf.c
> +++ b/drivers/media/i2c/s5k5baf.c
> @@ -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;

Would it make sense to make this

+	data = &fw->seq[fw->count];

or

+	data = fw->seq + fw->count;

instead?

regards
Philipp



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux