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 <l...@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 <dav...@egauge.net> :::::: CC: Greg Kroah-Hartman <gre...@linuxfoundation.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip