drivers/usb/host/max3421-hcd.c:792:1: warning: the frame size of 8220 bytes is larger than 1024 bytes
From: kernel test robot
Date: Wed Mar 31 2021 - 06:02:29 EST
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@xxxxxxxxx>
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@xxxxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip