The code currently uses C90 standard extension based zero length array struct which is now deprecated and the new C99 standard extension of flexible array declarations are to be used instead. Also, the macro DECLARE_FLEX_ARRAY() allows to use single flexible array member in a structure. Refer to these links [1], [2], and [3] for details. [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html [2] https://lore.kernel.org/lkml/YxKY6O2hmdwNh8r8@work [3] https://lore.kernel.org/lkml/20210827163015.3141722-2-keescook@xxxxxxxxxxxx/ Issue identified using Coccinelle flexible_array.cocci semantic patch. Signed-off-by: Deepak R Varma <drv@xxxxxxxxx> Reviewed-by: Alex Elder <elder@xxxxxxxxxx> --- Changes in v2: Following improvements as suggested by Alex Elder <elder@xxxxxxxx> - Include third reference URL in the commit message. - Update 2nd reference URL - Include Reviewed by tag drivers/staging/greybus/usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/greybus/usb.c b/drivers/staging/greybus/usb.c index 8e9d9d59a357..b7badf87a3f0 100644 --- a/drivers/staging/greybus/usb.c +++ b/drivers/staging/greybus/usb.c @@ -27,7 +27,7 @@ struct gb_usb_hub_control_request { }; struct gb_usb_hub_control_response { - u8 buf[0]; + DECLARE_FLEX_ARRAY(u8, buf); }; struct gb_usb_device { -- 2.34.1