Re: [PATCH] usb: dwc2: gadget: Fix a warning when compiling with W=1

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

 



Hi Christophe,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.6-rc3 next-20230926]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Christophe-JAILLET/usb-dwc2-gadget-Fix-a-warning-when-compiling-with-W-1/20230923-185559
base:   linus/master
patch link:    https://lore.kernel.org/r/5cf603809388aa04c9a02bbfe3cf531c20bb043e.1695466447.git.christophe.jaillet%40wanadoo.fr
patch subject: [PATCH] usb: dwc2: gadget: Fix a warning when compiling with W=1
config: x86_64-buildonly-randconfig-004-20230927 (https://download.01.org/0day-ci/archive/20230927/202309270325.uqGsh5Cw-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230927/202309270325.uqGsh5Cw-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/202309270325.uqGsh5Cw-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

   drivers/usb/dwc2/gadget.c: In function 'dwc2_hsotg_initep':
>> drivers/usb/dwc2/gadget.c:4804:55: warning: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size 8 [-Wformat-truncation=]
    4804 |         snprintf(hs_ep->name, sizeof(hs_ep->name), "ep%u%s", epnum, dir);
         |                                                       ^~
   drivers/usb/dwc2/gadget.c:4804:52: note: directive argument in the range [1, 4294967295]
    4804 |         snprintf(hs_ep->name, sizeof(hs_ep->name), "ep%u%s", epnum, dir);
         |                                                    ^~~~~~~~
   drivers/usb/dwc2/gadget.c:4804:9: note: 'snprintf' output between 6 and 16 bytes into a destination of size 10
    4804 |         snprintf(hs_ep->name, sizeof(hs_ep->name), "ep%u%s", epnum, dir);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +4804 drivers/usb/dwc2/gadget.c

  4775	
  4776	/**
  4777	 * dwc2_hsotg_initep - initialise a single endpoint
  4778	 * @hsotg: The device state.
  4779	 * @hs_ep: The endpoint to be initialised.
  4780	 * @epnum: The endpoint number
  4781	 * @dir_in: True if direction is in.
  4782	 *
  4783	 * Initialise the given endpoint (as part of the probe and device state
  4784	 * creation) to give to the gadget driver. Setup the endpoint name, any
  4785	 * direction information and other state that may be required.
  4786	 */
  4787	static void dwc2_hsotg_initep(struct dwc2_hsotg *hsotg,
  4788				      struct dwc2_hsotg_ep *hs_ep,
  4789				      unsigned int epnum,
  4790				      bool dir_in)
  4791	{
  4792		char *dir;
  4793	
  4794		if (epnum == 0)
  4795			dir = "";
  4796		else if (dir_in)
  4797			dir = "in";
  4798		else
  4799			dir = "out";
  4800	
  4801		hs_ep->dir_in = dir_in;
  4802		hs_ep->index = epnum;
  4803	
> 4804		snprintf(hs_ep->name, sizeof(hs_ep->name), "ep%u%s", epnum, dir);
  4805	
  4806		INIT_LIST_HEAD(&hs_ep->queue);
  4807		INIT_LIST_HEAD(&hs_ep->ep.ep_list);
  4808	
  4809		/* add to the list of endpoints known by the gadget driver */
  4810		if (epnum)
  4811			list_add_tail(&hs_ep->ep.ep_list, &hsotg->gadget.ep_list);
  4812	
  4813		hs_ep->parent = hsotg;
  4814		hs_ep->ep.name = hs_ep->name;
  4815	
  4816		if (hsotg->params.speed == DWC2_SPEED_PARAM_LOW)
  4817			usb_ep_set_maxpacket_limit(&hs_ep->ep, 8);
  4818		else
  4819			usb_ep_set_maxpacket_limit(&hs_ep->ep,
  4820						   epnum ? 1024 : EP0_MPS_LIMIT);
  4821		hs_ep->ep.ops = &dwc2_hsotg_ep_ops;
  4822	
  4823		if (epnum == 0) {
  4824			hs_ep->ep.caps.type_control = true;
  4825		} else {
  4826			if (hsotg->params.speed != DWC2_SPEED_PARAM_LOW) {
  4827				hs_ep->ep.caps.type_iso = true;
  4828				hs_ep->ep.caps.type_bulk = true;
  4829			}
  4830			hs_ep->ep.caps.type_int = true;
  4831		}
  4832	
  4833		if (dir_in)
  4834			hs_ep->ep.caps.dir_in = true;
  4835		else
  4836			hs_ep->ep.caps.dir_out = true;
  4837	
  4838		/*
  4839		 * if we're using dma, we need to set the next-endpoint pointer
  4840		 * to be something valid.
  4841		 */
  4842	
  4843		if (using_dma(hsotg)) {
  4844			u32 next = DXEPCTL_NEXTEP((epnum + 1) % 15);
  4845	
  4846			if (dir_in)
  4847				dwc2_writel(hsotg, next, DIEPCTL(epnum));
  4848			else
  4849				dwc2_writel(hsotg, next, DOEPCTL(epnum));
  4850		}
  4851	}
  4852	

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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux