tree:
https://github.com/intel/linux-intel-lts.git 5.4/yocto
head: 87241c08286384feb3ddc57d4cb0daca4be1e384
commit: 09c6f0fc5c85332b93c06fce6a05ae7af0795a89 [8692/9195] xlink-usb: XLink USB Remote
and Local Host driver
config: nios2-randconfig-r026-20200811 (attached as .config)
compiler: nios2-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
git checkout 09c6f0fc5c85332b93c06fce6a05ae7af0795a89
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function
'usb_get_device_status_by_id':
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:615:2: warning:
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
615
| u32 num = 0;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: At top level:
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:631:5: warning:
no previous prototype for 'usb_interrupt' [-Wmissing-prototypes]
631 |
int usb_interrupt(struct usb_device *usb_dev, unsigned int pipe,
| ^~~~~~~~~~~~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function 'usb_interrupt':
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:635:28: warning:
variable 'ep' set but not used [-Wunused-but-set-variable]
635 |
struct usb_host_endpoint *ep;
| ^~
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:634:14: warning:
variable 'urb' set but not used [-Wunused-but-set-variable]
634 |
struct urb *urb;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function
'usb_device_reset':
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:662:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
662 | struct usb_interface *data_interface = acm->data;
| ^~~~~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:658:28: warning: variable 'ep'
set but not used [-Wunused-but-set-variable]
658 | struct usb_host_endpoint *ep;
| ^~
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:653:6: warning:
variable 'ret' set but not used [-Wunused-but-set-variable]
653 | int
ret;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function
'vpu_write_host':
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:749:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
749 | int val = ACM_CTRL_DTR | ACM_CTRL_RTS;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:754:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
754 | int count = len;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function
'vpu_write_reset_host':
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:848:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
848 | const char *buf = 0;
| ^~~~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: At top level:
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:884:6: warning:
no previous prototype for 'vpu_write_swid' [-Wmissing-prototypes]
884 |
void vpu_write_swid(struct acm *acm, int *buf, int len)
| ^~~~~~~~~~~~~~
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1013:6: warning:
no previous prototype for 'vpu_close_swid' [-Wmissing-prototypes]
1013 |
void vpu_close_swid(struct acm *acm, int len)
| ^~~~~~~~~~~~~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function 'vpu_read_host':
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1066:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
1066 | struct urb *urb;
| ^~~~~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1096:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
1096 | int val = ACM_CTRL_DTR | ACM_CTRL_RTS;
| ^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function 'vpu_acm_probe':
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1365:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
1365 | struct usb_device *udev = interface_to_usbdev(intf);
| ^~~~~~
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1532:22:
warning: passing argument 2 of 'vpu_write_swid' makes pointer from integer without
a cast [-Wint-conversion]
1532 | vpu_write_swid(acm, devnum, size);
| ^~~~~~
| |
| int
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:884:43: note: expected 'int *'
but argument is of type 'int'
884 | void vpu_write_swid(struct acm *acm, int *buf, int len)
| ~~~~~^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1534:22: warning: passing argument 2
of 'vpu_write_swid' makes pointer from integer without a cast [-Wint-conversion]
1534 | vpu_write_swid(acm, busnum, size);
| ^~~~~~
| |
| int
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:884:43: note: expected 'int *'
but argument is of type 'int'
884 | void vpu_write_swid(struct acm *acm, int *buf, int len)
| ~~~~~^~~
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c: In function 'vpu_acm_init':
> drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:1727:6: warning:
variable 'retval' set but not used [-Wunused-but-set-variable]
1727 |
int retval;
| ^~~~~~
At top level:
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c:595:20: warning:
'usb_get_device_by_name' defined but not used [-Wunused-function]
595 | static struct acm *usb_get_device_by_name(const char *name)
| ^~~~~~~~~~~~~~~~~~~~~~
--
drivers/misc/xlink-usb/remote_host/mxlk_interface_host.c: In function
'xlink_usb_write':
> drivers/misc/xlink-usb/remote_host/mxlk_interface_host.c:40:38:
warning: passing argument 2 of 'vpu_close_host' makes integer from pointer without
a cast [-Wint-conversion]
40 | return vpu_close_host(sw_device_id, size);
| ^~~~
| |
| size_t * const {aka unsigned int * const}
In file included from drivers/misc/xlink-usb/remote_host/mxlk_interface_host.c:22:
drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.h:59:32: note: expected 'int'
but argument is of type 'size_t * const' {aka 'unsigned int * const'}
59 | int vpu_close_host(u32 id, int len);
| ~~~~^~~
vim +615 drivers/misc/xlink-usb/remote_host/vpu-cdc-acm.c
608
609 int usb_get_device_status_by_id(u32 id, uint32_t *status)
610 {
611 struct acm *xdev = usb_get_device_by_id(id);
612
613 if (!xdev)
614 return -ENODEV;
615 u32 num = 0;
616
617 mutex_lock(&dev_list_mutex);
618 list_for_each_entry(xdev, &dev_list, list) {
619 *status++ = xdev->status;
620 num++;
621 }
622 mutex_unlock(&dev_list_mutex);
623 return 0;
624 }
625
626 struct api_context {
627 struct completion done;
628 int status;
629 };
630
631 int usb_interrupt(struct usb_device *usb_dev, unsigned int pipe,
632 void *data, int len, int *actual_length, int timeout)
633 {
634 struct urb *urb;
635 struct usb_host_endpoint *ep;
636
637 ep = usb_pipe_endpoint(usb_dev, pipe);
638 urb = usb_alloc_urb(0, GFP_KERNEL);
639 return 0;
640 }
641
642 int usb_connect_device(uint32_t sw_device_id)
643 {
644 struct acm *xdev = usb_get_device_by_id(sw_device_id);
645
646 if (!xdev)
647 return -ENODEV;
648 return 0;
649 }
650
651 int usb_device_reset(u8 cmd)
652 {
653 int ret;
654 int index = 0;
655 unsigned int pipe = 1;
656 struct acm *acm = vpu_acm_get_by_minor(index);
657 int actual_len;
658 struct usb_host_endpoint *ep;
659 u8 *buffer_cmd = NULL;
660
661 ep = usb_pipe_endpoint(acm->dev, pipe);
662 struct usb_interface *data_interface = acm->data;
663 struct usb_endpoint_descriptor *epwrite = NULL;
664
665 epwrite = &data_interface->cur_altsetting->endpoint[1].desc;
666 buffer_cmd = kzalloc(sizeof(cmd), GFP_KERNEL);
667 if (!buffer_cmd)
668 return -ENOMEM;
669
670 *buffer_cmd = cmd;
671
672 pipe = (pipe & ~(3 << 30)) | (PIPE_INTERRUPT << 30);
673
674 ret = usb_interrupt(acm->dev,
675 usb_sndintpipe(acm->dev, epwrite->bEndpointAddress),
676 buffer_cmd, sizeof(cmd),
677 &actual_len, USB_CTRL_SET_TIMEOUT);
678 kfree(buffer_cmd);
679
680 return 0;
681 }
682 EXPORT_SYMBOL_GPL(usb_device_reset);
683
684 int vpu_write_host(u32 id, const char *buf, size_t *size,
685 unsigned int timeout_ms)
686 {
687 int len = *size;
688 int ret = 0;
689 struct acm *xdev = usb_get_device_by_id(id);
690 struct acm *acm;
691 int index = 0;
692 long jiffies_passed = 0;
693 long jiffies_timeout = (long)msecs_to_jiffies(timeout_ms);
694 int retval = -ENODEV;
695 int i;
696
697 if (!xdev)
698 return -EINVAL;
699
700 acm = vpu_acm_get_by_minor(index);
701 if (!acm)
702 return -EINVAL;
703
704 ret = wait_event_interruptible_timeout(acm->wioctl,
705 acm, jiffies_timeout - jiffies_passed);
706 if (ret == 0)
707 return -ETIME;
708
709 *size = 0;
710 if (len == 0)
711 return -EINVAL;
712
713 mutex_lock(&acm->mutex);
714 if (acm->disconnected)
715 goto disconnected;
716
717 retval = usb_autopm_get_interface(acm->control);
718 if (retval)
719 goto error_get_interface;
720 /*
721 * FIXME: Why do we need this? Allocating 64K of physically contiguous
722 * memory is really nasty...
723 */
724 acm->control->needs_remote_wakeup = 1;
725
726 acm->ctrlurb->dev = acm->dev;
727 retval = usb_submit_urb(acm->ctrlurb, GFP_KERNEL);
728 if (retval) {
729 dev_err(&acm->control->dev,
730 "%s - usb_submit_urb(ctrl irq) failed\n", __func__);
731 goto error_submit_urb;
732 }
733
734 /*
735 * Unthrottle device in case the TTY was closed while throttled.
736 */
737 clear_bit(ACM_THROTTLED, &acm->flags);
738
739 retval = vpu_acm_submit_read_urbs(acm, GFP_KERNEL);
740 if (retval)
741 goto error_submit_read_urbs;
742
743 usb_autopm_put_interface(acm->control);
744
745 mutex_unlock(&acm->mutex);
746
747 vpu_acm_submit_read_urbs(acm, GFP_KERNEL);
748
749 int val = ACM_CTRL_DTR | ACM_CTRL_RTS;
750
751 acm->ctrlout = val;
752 vpu_acm_set_control(acm, val);
753
754 int count = len;
755 int stat;
756 unsigned long flags;
757 int wbn;
758 struct acm_wb *wb;
759
760 if (!count)
761 return -EINVAL;
762
763 dev_vdbg(&acm->data->dev, "%d bytes from tty layer\n",
count);
764
765 spin_lock_irqsave(&acm->write_lock, flags);
766 wbn = vpu_acm_wb_alloc(acm);
767 if (wbn < 0) {
768 spin_unlock_irqrestore(&acm->write_lock, flags);
769 return -EINVAL;
770 }
771 wb = &acm->wb[wbn];
772
773 if (!acm->dev) {
774 wb->use = 0;
775 spin_unlock_irqrestore(&acm->write_lock, flags);
776 return -EINVAL;
777 }
778
779 count = (count > acm->writesize) ? acm->writesize : count;
780 dev_vdbg(&acm->data->dev, "writing %d bytes\n", count);
781 memcpy(wb->buf, buf, count);
782 wb->len = count;
783 len = count;
784 stat = usb_autopm_get_interface_async(acm->control);
785 if (stat) {
786 wb->use = 0;
787 spin_unlock_irqrestore(&acm->write_lock, flags);
788 return -EINVAL;
789 }
790
791 if (acm->susp_count) {
792 usb_anchor_urb(wb->urb, &acm->delayed);
793 spin_unlock_irqrestore(&acm->write_lock, flags);
794 return -EINVAL;
795 }
796 stat = vpu_acm_start_wb(acm, wb);
797 spin_unlock_irqrestore(&acm->write_lock, flags);
798
799 if (stat < 0)
800 return -EINVAL;
801
802 error_submit_read_urbs:
803 for (i = 0; i < acm->rx_buflimit; i++)
804 usb_kill_urb(acm->read_urbs[i]);
805 usb_kill_urb(acm->ctrlurb);
806 error_submit_urb:
807 usb_autopm_put_interface(acm->control);
808 error_get_interface:
809 disconnected:
810 mutex_unlock(&acm->mutex);
811 *size = len;
812 return 0;
813 }
814 EXPORT_SYMBOL_GPL(vpu_write_host);
815
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org