drivers/usb/gadget/udc/atmel_usba_udc.c:379:27: warning: this statement may fall through

From: kernel test robot
Date: Fri Nov 10 2023 - 23:22:10 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3ca112b71f35dd5d99fc4571a56b5fc6f0c15814
commit: 2d4c44e979eaa846dfa63717c4f4818e11161c66 ARM: at91: Add armv7m support
date: 6 years ago
config: arm-randconfig-001-20231106 (https://download.01.org/0day-ci/archive/20231111/202311111246.JwAbYSzm-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231111/202311111246.JwAbYSzm-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311111246.JwAbYSzm-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from drivers/usb/gadget/udc/atmel_usba_udc.c:12:
include/linux/module.h:137:14: warning: 'cleanup_module' specifies less restrictive attribute than its target 'udc_driver_exit': 'cold' [-Wmissing-attributes]
137 | void cleanup_module(void) __attribute__((alias(#exitfn)));
| ^~~~~~~~~~~~~~
include/linux/platform_device.h:256:1: note: in expansion of macro 'module_exit'
256 | module_exit(__platform_driver##_exit);
| ^~~~~~~~~~~
drivers/usb/gadget/udc/atmel_usba_udc.c:2470:1: note: in expansion of macro 'module_platform_driver_probe'
2470 | module_platform_driver_probe(udc_driver, usba_udc_probe);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/usb/gadget/udc/atmel_usba_udc.c:21:
drivers/usb/gadget/udc/atmel_usba_udc.c:2470:30: note: 'cleanup_module' target declared here
2470 | module_platform_driver_probe(udc_driver, usba_udc_probe);
| ^~~~~~~~~~
include/linux/platform_device.h:252:20: note: in definition of macro 'module_platform_driver_probe'
252 | static void __exit __platform_driver##_exit(void) \
| ^~~~~~~~~~~~~~~~~
include/linux/module.h:131:13: warning: 'init_module' specifies less restrictive attribute than its target 'udc_driver_init': 'cold' [-Wmissing-attributes]
131 | int init_module(void) __attribute__((alias(#initfn)));
| ^~~~~~~~~~~
include/linux/platform_device.h:251:1: note: in expansion of macro 'module_init'
251 | module_init(__platform_driver##_init); \
| ^~~~~~~~~~~
drivers/usb/gadget/udc/atmel_usba_udc.c:2470:1: note: in expansion of macro 'module_platform_driver_probe'
2470 | module_platform_driver_probe(udc_driver, usba_udc_probe);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/usb/gadget/udc/atmel_usba_udc.c:2470:30: note: 'init_module' target declared here
2470 | module_platform_driver_probe(udc_driver, usba_udc_probe);
| ^~~~~~~~~~
include/linux/platform_device.h:246:19: note: in definition of macro 'module_platform_driver_probe'
246 | static int __init __platform_driver##_init(void) \
| ^~~~~~~~~~~~~~~~~
drivers/usb/gadget/udc/atmel_usba_udc.c: In function 'usba_config_fifo_table':
>> drivers/usb/gadget/udc/atmel_usba_udc.c:379:27: warning: this statement may fall through [-Wimplicit-fallthrough=]
379 | fifo_mode = 0;
| ~~~~~~~~~~^~~
drivers/usb/gadget/udc/atmel_usba_udc.c:380:9: note: here
380 | case 0:
| ^~~~
drivers/usb/gadget/udc/atmel_usba_udc.c: In function 'usba_udc_pdata':
drivers/usb/gadget/udc/atmel_usba_udc.c:2246:40: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2246 | ep->ep.name = pdata->ep[i].name;
| ~~~~~~~~~^~~
In file included from drivers/usb/gadget/udc/atmel_usba_udc.c:26:
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
drivers/usb/gadget/udc/atmel_usba_udc.c:2247:42: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2247 | ep->fifo_size = pdata->ep[i].fifo_size;
| ~~~~~~~~~^~~
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
drivers/usb/gadget/udc/atmel_usba_udc.c:2251:41: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2251 | ep->nr_banks = pdata->ep[i].nr_banks;
| ~~~~~~~~~^~~
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
drivers/usb/gadget/udc/atmel_usba_udc.c:2252:38: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2252 | ep->index = pdata->ep[i].index;
| ~~~~~~~~~^~~
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
drivers/usb/gadget/udc/atmel_usba_udc.c:2253:40: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2253 | ep->can_dma = pdata->ep[i].can_dma;
| ~~~~~~~~~^~~
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
drivers/usb/gadget/udc/atmel_usba_udc.c:2254:41: warning: array subscript i is outside array bounds of 'struct usba_ep_data[0]' [-Warray-bounds=]
2254 | ep->can_isoc = pdata->ep[i].can_isoc;
| ~~~~~~~~~^~~
include/linux/usb/atmel_usba_udc.h:20:33: note: while referencing 'ep'
20 | struct usba_ep_data ep[0];
| ^~
--
drivers/pinctrl/pinctrl-at91-pio4.c:136: warning: Function parameter or member 'pm_wakeup_sources' not described in 'atmel_pioctrl'
drivers/pinctrl/pinctrl-at91-pio4.c:136: warning: Function parameter or member 'pm_suspend_backup' not described in 'atmel_pioctrl'
>> drivers/pinctrl/pinctrl-at91-pio4.c:136: warning: Function parameter or member 'pm_suspend_backup.imr' not described in 'atmel_pioctrl'
>> drivers/pinctrl/pinctrl-at91-pio4.c:136: warning: Function parameter or member 'pm_suspend_backup.odsr' not described in 'atmel_pioctrl'
>> drivers/pinctrl/pinctrl-at91-pio4.c:136: warning: Function parameter or member 'pm_suspend_backup.cfgr' not described in 'atmel_pioctrl'
--
In file included from drivers/power/reset/at91-poweroff.c:15:
include/linux/module.h:137:14: warning: 'cleanup_module' specifies less restrictive attribute than its target 'at91_poweroff_driver_exit': 'cold' [-Wmissing-attributes]
137 | void cleanup_module(void) __attribute__((alias(#exitfn)));
| ^~~~~~~~~~~~~~
include/linux/platform_device.h:256:1: note: in expansion of macro 'module_exit'
256 | module_exit(__platform_driver##_exit);
| ^~~~~~~~~~~
drivers/power/reset/at91-poweroff.c:233:1: note: in expansion of macro 'module_platform_driver_probe'
233 | module_platform_driver_probe(at91_poweroff_driver, at91_poweroff_probe);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/power/reset/at91-poweroff.c:18:
drivers/power/reset/at91-poweroff.c:233:30: note: 'cleanup_module' target declared here
233 | module_platform_driver_probe(at91_poweroff_driver, at91_poweroff_probe);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/platform_device.h:252:20: note: in definition of macro 'module_platform_driver_probe'
252 | static void __exit __platform_driver##_exit(void) \
| ^~~~~~~~~~~~~~~~~
include/linux/module.h:131:13: warning: 'init_module' specifies less restrictive attribute than its target 'at91_poweroff_driver_init': 'cold' [-Wmissing-attributes]
131 | int init_module(void) __attribute__((alias(#initfn)));
| ^~~~~~~~~~~
include/linux/platform_device.h:251:1: note: in expansion of macro 'module_init'
251 | module_init(__platform_driver##_init); \
| ^~~~~~~~~~~
drivers/power/reset/at91-poweroff.c:233:1: note: in expansion of macro 'module_platform_driver_probe'
233 | module_platform_driver_probe(at91_poweroff_driver, at91_poweroff_probe);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/power/reset/at91-poweroff.c:233:30: note: 'init_module' target declared here
233 | module_platform_driver_probe(at91_poweroff_driver, at91_poweroff_probe);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/platform_device.h:246:19: note: in definition of macro 'module_platform_driver_probe'
246 | static int __init __platform_driver##_init(void) \
| ^~~~~~~~~~~~~~~~~
>> drivers/power/reset/at91-poweroff.c:213:34: warning: 'at91_ramc_of_match' defined but not used [-Wunused-const-variable=]
213 | static const struct of_device_id at91_ramc_of_match[] = {
| ^~~~~~~~~~~~~~~~~~


vim +379 drivers/usb/gadget/udc/atmel_usba_udc.c

741d2558bf0aa8 Cristian Birsan 2017-01-23 372
fbf4987ae89261 Cristian Birsan 2017-03-28 373 static int usba_config_fifo_table(struct usba_udc *udc)
741d2558bf0aa8 Cristian Birsan 2017-01-23 374 {
741d2558bf0aa8 Cristian Birsan 2017-01-23 375 int n;
741d2558bf0aa8 Cristian Birsan 2017-01-23 376
741d2558bf0aa8 Cristian Birsan 2017-01-23 377 switch (fifo_mode) {
741d2558bf0aa8 Cristian Birsan 2017-01-23 378 default:
741d2558bf0aa8 Cristian Birsan 2017-01-23 @379 fifo_mode = 0;
741d2558bf0aa8 Cristian Birsan 2017-01-23 380 case 0:
741d2558bf0aa8 Cristian Birsan 2017-01-23 381 udc->fifo_cfg = NULL;
741d2558bf0aa8 Cristian Birsan 2017-01-23 382 n = 0;
741d2558bf0aa8 Cristian Birsan 2017-01-23 383 break;
741d2558bf0aa8 Cristian Birsan 2017-01-23 384 case 1:
741d2558bf0aa8 Cristian Birsan 2017-01-23 385 udc->fifo_cfg = mode_1_cfg;
741d2558bf0aa8 Cristian Birsan 2017-01-23 386 n = ARRAY_SIZE(mode_1_cfg);
741d2558bf0aa8 Cristian Birsan 2017-01-23 387 break;
741d2558bf0aa8 Cristian Birsan 2017-01-23 388 case 2:
741d2558bf0aa8 Cristian Birsan 2017-01-23 389 udc->fifo_cfg = mode_2_cfg;
741d2558bf0aa8 Cristian Birsan 2017-01-23 390 n = ARRAY_SIZE(mode_2_cfg);
741d2558bf0aa8 Cristian Birsan 2017-01-23 391 break;
741d2558bf0aa8 Cristian Birsan 2017-01-23 392 case 3:
741d2558bf0aa8 Cristian Birsan 2017-01-23 393 udc->fifo_cfg = mode_3_cfg;
741d2558bf0aa8 Cristian Birsan 2017-01-23 394 n = ARRAY_SIZE(mode_3_cfg);
741d2558bf0aa8 Cristian Birsan 2017-01-23 395 break;
741d2558bf0aa8 Cristian Birsan 2017-01-23 396 case 4:
741d2558bf0aa8 Cristian Birsan 2017-01-23 397 udc->fifo_cfg = mode_4_cfg;
741d2558bf0aa8 Cristian Birsan 2017-01-23 398 n = ARRAY_SIZE(mode_4_cfg);
741d2558bf0aa8 Cristian Birsan 2017-01-23 399 break;
741d2558bf0aa8 Cristian Birsan 2017-01-23 400 }
741d2558bf0aa8 Cristian Birsan 2017-01-23 401 DBG(DBG_HW, "Setup fifo_mode %d\n", fifo_mode);
741d2558bf0aa8 Cristian Birsan 2017-01-23 402
741d2558bf0aa8 Cristian Birsan 2017-01-23 403 return n;
741d2558bf0aa8 Cristian Birsan 2017-01-23 404 }
741d2558bf0aa8 Cristian Birsan 2017-01-23 405

:::::: The code at line 379 was first introduced by commit
:::::: 741d2558bf0aa8da9c0834ad43e1b9a1b16aa515 usb: gadget: udc: atmel: Update endpoint allocation scheme

:::::: TO: Cristian Birsan <cristian.birsan@xxxxxxxxxxxxx>
:::::: CC: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki