lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Wed, 31 Mar 2021 17:59:40 +0800
From:   kernel test robot <lkp@...el.com>
To:     Nicholas Piggin <npiggin@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Peter Zijlstra <peterz@...radead.org>,
        "Steven Rostedt (VMware)" <rostedt@...dmis.org>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: drivers/usb/host/max3421-hcd.c:792:1: warning: the frame size of
 8220 bytes is larger than 1024 bytes

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5e46d1b78a03d52306f21f77a4e4a144b6d31486
commit: 044d0d6de9f50192f9697583504a382347ee95ca lockdep: Only trace IRQ edges
date:   7 months ago
config: csky-randconfig-r012-20210331 (attached as .config)
compiler: csky-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=044d0d6de9f50192f9697583504a382347ee95ca
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 044d0d6de9f50192f9697583504a382347ee95ca
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=csky 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   drivers/usb/host/max3421-hcd.c: In function 'max3421_select_and_start_urb':
>> drivers/usb/host/max3421-hcd.c:792:1: warning: the frame size of 8220 bytes is larger than 1024 bytes [-Wframe-larger-than=]
     792 | }
         | ^


vim +792 drivers/usb/host/max3421-hcd.c

2d53139f31626b David Mosberger 2014-04-28  648  
2d53139f31626b David Mosberger 2014-04-28  649  /*
2d53139f31626b David Mosberger 2014-04-28  650   * Find the next URB to process and start its execution.
2d53139f31626b David Mosberger 2014-04-28  651   *
2d53139f31626b David Mosberger 2014-04-28  652   * At this time, we do not anticipate ever connecting a USB hub to the
2d53139f31626b David Mosberger 2014-04-28  653   * MAX3421 chip, so at most USB device can be connected and we can use
2d53139f31626b David Mosberger 2014-04-28  654   * a simplistic scheduler: at the start of a frame, schedule all
2d53139f31626b David Mosberger 2014-04-28  655   * periodic transfers.  Once that is done, use the remainder of the
2d53139f31626b David Mosberger 2014-04-28  656   * frame to process non-periodic (bulk & control) transfers.
2d53139f31626b David Mosberger 2014-04-28  657   *
2d53139f31626b David Mosberger 2014-04-28  658   * Preconditions:
2d53139f31626b David Mosberger 2014-04-28  659   * o Caller must NOT hold HCD spinlock.
2d53139f31626b David Mosberger 2014-04-28  660   * o max3421_hcd->curr_urb MUST BE NULL.
2d53139f31626b David Mosberger 2014-04-28  661   * o MAX3421E chip must be idle.
2d53139f31626b David Mosberger 2014-04-28  662   */
2d53139f31626b David Mosberger 2014-04-28  663  static int
2d53139f31626b David Mosberger 2014-04-28  664  max3421_select_and_start_urb(struct usb_hcd *hcd)
2d53139f31626b David Mosberger 2014-04-28  665  {
2d53139f31626b David Mosberger 2014-04-28  666  	struct spi_device *spi = to_spi_device(hcd->self.controller);
2d53139f31626b David Mosberger 2014-04-28  667  	struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd);
2d53139f31626b David Mosberger 2014-04-28  668  	struct urb *urb, *curr_urb = NULL;
2d53139f31626b David Mosberger 2014-04-28  669  	struct max3421_ep *max3421_ep;
2d53139f31626b David Mosberger 2014-04-28  670  	int epnum, force_toggles = 0;
2d53139f31626b David Mosberger 2014-04-28  671  	struct usb_host_endpoint *ep;
2d53139f31626b David Mosberger 2014-04-28  672  	struct list_head *pos;
2d53139f31626b David Mosberger 2014-04-28  673  	unsigned long flags;
2d53139f31626b David Mosberger 2014-04-28  674  
2d53139f31626b David Mosberger 2014-04-28  675  	spin_lock_irqsave(&max3421_hcd->lock, flags);
2d53139f31626b David Mosberger 2014-04-28  676  
2d53139f31626b David Mosberger 2014-04-28  677  	for (;
2d53139f31626b David Mosberger 2014-04-28  678  	     max3421_hcd->sched_pass < SCHED_PASS_DONE;
2d53139f31626b David Mosberger 2014-04-28  679  	     ++max3421_hcd->sched_pass)
2d53139f31626b David Mosberger 2014-04-28  680  		list_for_each(pos, &max3421_hcd->ep_list) {
2d53139f31626b David Mosberger 2014-04-28  681  			urb = NULL;
2d53139f31626b David Mosberger 2014-04-28  682  			max3421_ep = container_of(pos, struct max3421_ep,
2d53139f31626b David Mosberger 2014-04-28  683  						  ep_list);
2d53139f31626b David Mosberger 2014-04-28  684  			ep = max3421_ep->ep;
2d53139f31626b David Mosberger 2014-04-28  685  
2d53139f31626b David Mosberger 2014-04-28  686  			switch (usb_endpoint_type(&ep->desc)) {
2d53139f31626b David Mosberger 2014-04-28  687  			case USB_ENDPOINT_XFER_ISOC:
2d53139f31626b David Mosberger 2014-04-28  688  			case USB_ENDPOINT_XFER_INT:
2d53139f31626b David Mosberger 2014-04-28  689  				if (max3421_hcd->sched_pass !=
2d53139f31626b David Mosberger 2014-04-28  690  				    SCHED_PASS_PERIODIC)
2d53139f31626b David Mosberger 2014-04-28  691  					continue;
2d53139f31626b David Mosberger 2014-04-28  692  				break;
2d53139f31626b David Mosberger 2014-04-28  693  
2d53139f31626b David Mosberger 2014-04-28  694  			case USB_ENDPOINT_XFER_CONTROL:
2d53139f31626b David Mosberger 2014-04-28  695  			case USB_ENDPOINT_XFER_BULK:
2d53139f31626b David Mosberger 2014-04-28  696  				if (max3421_hcd->sched_pass !=
2d53139f31626b David Mosberger 2014-04-28  697  				    SCHED_PASS_NON_PERIODIC)
2d53139f31626b David Mosberger 2014-04-28  698  					continue;
2d53139f31626b David Mosberger 2014-04-28  699  				break;
2d53139f31626b David Mosberger 2014-04-28  700  			}
2d53139f31626b David Mosberger 2014-04-28  701  
2d53139f31626b David Mosberger 2014-04-28  702  			if (list_empty(&ep->urb_list))
2d53139f31626b David Mosberger 2014-04-28  703  				continue;	/* nothing to do */
2d53139f31626b David Mosberger 2014-04-28  704  			urb = list_first_entry(&ep->urb_list, struct urb,
2d53139f31626b David Mosberger 2014-04-28  705  					       urb_list);
2d53139f31626b David Mosberger 2014-04-28  706  			if (urb->unlinked) {
2d53139f31626b David Mosberger 2014-04-28  707  				dev_dbg(&spi->dev, "%s: URB %p unlinked=%d",
2d53139f31626b David Mosberger 2014-04-28  708  					__func__, urb, urb->unlinked);
2d53139f31626b David Mosberger 2014-04-28  709  				max3421_hcd->curr_urb = urb;
2d53139f31626b David Mosberger 2014-04-28  710  				max3421_hcd->urb_done = 1;
2d53139f31626b David Mosberger 2014-04-28  711  				spin_unlock_irqrestore(&max3421_hcd->lock,
2d53139f31626b David Mosberger 2014-04-28  712  						       flags);
2d53139f31626b David Mosberger 2014-04-28  713  				return 1;
2d53139f31626b David Mosberger 2014-04-28  714  			}
2d53139f31626b David Mosberger 2014-04-28  715  
2d53139f31626b David Mosberger 2014-04-28  716  			switch (usb_endpoint_type(&ep->desc)) {
2d53139f31626b David Mosberger 2014-04-28  717  			case USB_ENDPOINT_XFER_CONTROL:
2d53139f31626b David Mosberger 2014-04-28  718  				/*
2d53139f31626b David Mosberger 2014-04-28  719  				 * Allow one control transaction per
2d53139f31626b David Mosberger 2014-04-28  720  				 * frame per endpoint:
2d53139f31626b David Mosberger 2014-04-28  721  				 */
2d53139f31626b David Mosberger 2014-04-28  722  				if (frame_diff(max3421_ep->last_active,
2d53139f31626b David Mosberger 2014-04-28  723  					       max3421_hcd->frame_number) == 0)
2d53139f31626b David Mosberger 2014-04-28  724  					continue;
2d53139f31626b David Mosberger 2014-04-28  725  				break;
2d53139f31626b David Mosberger 2014-04-28  726  
2d53139f31626b David Mosberger 2014-04-28  727  			case USB_ENDPOINT_XFER_BULK:
2d53139f31626b David Mosberger 2014-04-28  728  				if (max3421_ep->retransmit
2d53139f31626b David Mosberger 2014-04-28  729  				    && (frame_diff(max3421_ep->last_active,
2d53139f31626b David Mosberger 2014-04-28  730  						   max3421_hcd->frame_number)
2d53139f31626b David Mosberger 2014-04-28  731  					== 0))
2d53139f31626b David Mosberger 2014-04-28  732  					/*
2d53139f31626b David Mosberger 2014-04-28  733  					 * We already tried this EP
2d53139f31626b David Mosberger 2014-04-28  734  					 * during this frame and got a
2d53139f31626b David Mosberger 2014-04-28  735  					 * NAK or error; wait for next frame
2d53139f31626b David Mosberger 2014-04-28  736  					 */
2d53139f31626b David Mosberger 2014-04-28  737  					continue;
2d53139f31626b David Mosberger 2014-04-28  738  				break;
2d53139f31626b David Mosberger 2014-04-28  739  
2d53139f31626b David Mosberger 2014-04-28  740  			case USB_ENDPOINT_XFER_ISOC:
2d53139f31626b David Mosberger 2014-04-28  741  			case USB_ENDPOINT_XFER_INT:
2d53139f31626b David Mosberger 2014-04-28  742  				if (frame_diff(max3421_hcd->frame_number,
2d53139f31626b David Mosberger 2014-04-28  743  					       max3421_ep->last_active)
2d53139f31626b David Mosberger 2014-04-28  744  				    < urb->interval)
2d53139f31626b David Mosberger 2014-04-28  745  					/*
2d53139f31626b David Mosberger 2014-04-28  746  					 * We already processed this
2d53139f31626b David Mosberger 2014-04-28  747  					 * end-point in the current
2d53139f31626b David Mosberger 2014-04-28  748  					 * frame
2d53139f31626b David Mosberger 2014-04-28  749  					 */
2d53139f31626b David Mosberger 2014-04-28  750  					continue;
2d53139f31626b David Mosberger 2014-04-28  751  				break;
2d53139f31626b David Mosberger 2014-04-28  752  			}
2d53139f31626b David Mosberger 2014-04-28  753  
2d53139f31626b David Mosberger 2014-04-28  754  			/* move current ep to tail: */
2d53139f31626b David Mosberger 2014-04-28  755  			list_move_tail(pos, &max3421_hcd->ep_list);
2d53139f31626b David Mosberger 2014-04-28  756  			curr_urb = urb;
2d53139f31626b David Mosberger 2014-04-28  757  			goto done;
2d53139f31626b David Mosberger 2014-04-28  758  		}
2d53139f31626b David Mosberger 2014-04-28  759  done:
2d53139f31626b David Mosberger 2014-04-28  760  	if (!curr_urb) {
2d53139f31626b David Mosberger 2014-04-28  761  		spin_unlock_irqrestore(&max3421_hcd->lock, flags);
2d53139f31626b David Mosberger 2014-04-28  762  		return 0;
2d53139f31626b David Mosberger 2014-04-28  763  	}
2d53139f31626b David Mosberger 2014-04-28  764  
2d53139f31626b David Mosberger 2014-04-28  765  	urb = max3421_hcd->curr_urb = curr_urb;
2d53139f31626b David Mosberger 2014-04-28  766  	epnum = usb_endpoint_num(&urb->ep->desc);
2d53139f31626b David Mosberger 2014-04-28  767  	if (max3421_ep->retransmit)
2d53139f31626b David Mosberger 2014-04-28  768  		/* restart (part of) a USB transaction: */
2d53139f31626b David Mosberger 2014-04-28  769  		max3421_ep->retransmit = 0;
2d53139f31626b David Mosberger 2014-04-28  770  	else {
2d53139f31626b David Mosberger 2014-04-28  771  		/* start USB transaction: */
2d53139f31626b David Mosberger 2014-04-28  772  		if (usb_endpoint_xfer_control(&ep->desc)) {
2d53139f31626b David Mosberger 2014-04-28  773  			/*
2d53139f31626b David Mosberger 2014-04-28  774  			 * See USB 2.0 spec section 8.6.1
2d53139f31626b David Mosberger 2014-04-28  775  			 * Initialization via SETUP Token:
2d53139f31626b David Mosberger 2014-04-28  776  			 */
2d53139f31626b David Mosberger 2014-04-28  777  			usb_settoggle(urb->dev, epnum, 0, 1);
2d53139f31626b David Mosberger 2014-04-28  778  			usb_settoggle(urb->dev, epnum, 1, 1);
2d53139f31626b David Mosberger 2014-04-28  779  			max3421_ep->pkt_state = PKT_STATE_SETUP;
2d53139f31626b David Mosberger 2014-04-28  780  			force_toggles = 1;
2d53139f31626b David Mosberger 2014-04-28  781  		} else
2d53139f31626b David Mosberger 2014-04-28  782  			max3421_ep->pkt_state = PKT_STATE_TRANSFER;
2d53139f31626b David Mosberger 2014-04-28  783  	}
2d53139f31626b David Mosberger 2014-04-28  784  
2d53139f31626b David Mosberger 2014-04-28  785  	spin_unlock_irqrestore(&max3421_hcd->lock, flags);
2d53139f31626b David Mosberger 2014-04-28  786  
2d53139f31626b David Mosberger 2014-04-28  787  	max3421_ep->last_active = max3421_hcd->frame_number;
2d53139f31626b David Mosberger 2014-04-28  788  	max3421_set_address(hcd, urb->dev, epnum, force_toggles);
2d53139f31626b David Mosberger 2014-04-28  789  	max3421_set_speed(hcd, urb->dev);
2d53139f31626b David Mosberger 2014-04-28  790  	max3421_next_transfer(hcd, 0);
2d53139f31626b David Mosberger 2014-04-28  791  	return 1;
2d53139f31626b David Mosberger 2014-04-28 @792  }
2d53139f31626b David Mosberger 2014-04-28  793  

:::::: The code at line 792 was first introduced by commit
:::::: 2d53139f31626bad6f8983d8e519ddde2cbba921 Add support for using a MAX3421E chip as a host driver.

:::::: TO: David Mosberger <davidm@...uge.net>
:::::: CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (31311 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ