mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	"Steven Rostedt (VMware)" <rostedt@goodmis.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: drivers/usb/host/max3421-hcd.c:792:1: warning: the frame size of 8220 bytes is larger than 1024 bytes
Date: Wed, 31 Mar 2021 17:59:40 +0800	[thread overview]
Message-ID: <202103311730.3eFW68uN-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 12669 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@intel.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@egauge.net>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31311 bytes --]

                 reply	other threads:[~2021-03-31 10:01 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202103311730.3eFW68uN-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@gmail.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®