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]
Message-ID: <202005271811.E9HZUWEf%lkp@intel.com>
Date:   Wed, 27 May 2020 18:51:17 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Jassi Brar <jaswinder.singh@...aro.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Felipe Balbi <balbi@...nel.org>
Subject: drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse: sparse:
 incorrect type in argument 1 (different base types)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   444fc5cde64330661bf59944c43844e7d4c2ccd8
commit: 48ba02b2e2b1a1c80718e93fefe99c8319597c4a usb: gadget: add udc driver for max3420
date:   2 months ago
config: sparc64-randconfig-s031-20200527 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-240-gf0fe1cd9-dirty
        git checkout 48ba02b2e2b1a1c80718e93fefe99c8319597c4a
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=sparc64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

   ./arch/sparc/include/generated/uapi/asm/unistd_64.h:379:40: sparse: sparse: no newline at end of file
   drivers/usb/gadget/udc/max3420_udc.c:555:41: sparse: sparse: restricted __le16 degrades to integer
   drivers/usb/gadget/udc/max3420_udc.c:556:31: sparse: sparse: restricted __le16 degrades to integer
   drivers/usb/gadget/udc/max3420_udc.c:570:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] status @@     got restricted __le16 [usertype] @@
   drivers/usb/gadget/udc/max3420_udc.c:570:16: sparse:     expected unsigned short [assigned] [usertype] status
   drivers/usb/gadget/udc/max3420_udc.c:570:16: sparse:     got restricted __le16 [usertype]
   drivers/usb/gadget/udc/max3420_udc.c:588:31: sparse: sparse: restricted __le16 degrades to integer
   drivers/usb/gadget/udc/max3420_udc.c:602:32: sparse: sparse: restricted __le16 degrades to integer
   drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [addressable] [usertype] wValue @@
   drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse:     expected unsigned short [usertype] val
   drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse:     got restricted __le16 [addressable] [usertype] wValue
   drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse: sparse: cast from restricted __le16
   drivers/usb/gadget/udc/max3420_udc.c:631:29: sparse: sparse: cast from restricted __le16
   drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [addressable] [usertype] wIndex @@
   drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse:     expected unsigned short [usertype] val
   drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse:     got restricted __le16 [addressable] [usertype] wIndex
   drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse: sparse: cast from restricted __le16
   drivers/usb/gadget/udc/max3420_udc.c:632:29: sparse: sparse: cast from restricted __le16
   drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [addressable] [usertype] wLength @@
   drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse:     expected unsigned short [usertype] val
   drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse:     got restricted __le16 [addressable] [usertype] wLength
   drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse: sparse: cast from restricted __le16
   drivers/usb/gadget/udc/max3420_udc.c:633:30: sparse: sparse: cast from restricted __le16

vim +631 drivers/usb/gadget/udc/max3420_udc.c

   622	
   623	static void max3420_handle_setup(struct max3420_udc *udc)
   624	{
   625		struct usb_ctrlrequest setup;
   626		u8 addr;
   627	
   628		spi_rd_buf(udc, MAX3420_REG_SUDFIFO, (void *)&setup, 8);
   629	
   630		udc->setup = setup;
 > 631		udc->setup.wValue = cpu_to_le16(setup.wValue);
 > 632		udc->setup.wIndex = cpu_to_le16(setup.wIndex);
 > 633		udc->setup.wLength = cpu_to_le16(setup.wLength);
   634	
   635		switch (udc->setup.bRequest) {
   636		case USB_REQ_GET_STATUS:
   637			/* Data+Status phase form udc */
   638			if ((udc->setup.bRequestType &
   639					(USB_DIR_IN | USB_TYPE_MASK)) !=
   640					(USB_DIR_IN | USB_TYPE_STANDARD)) {
   641				break;
   642			}
   643			return max3420_getstatus(udc);
   644		case USB_REQ_SET_ADDRESS:
   645			/* Status phase from udc */
   646			if (udc->setup.bRequestType != (USB_DIR_OUT |
   647					USB_TYPE_STANDARD | USB_RECIP_DEVICE)) {
   648				break;
   649			}
   650			addr = spi_rd8_ack(udc, MAX3420_REG_FNADDR, 1);
   651			dev_dbg(udc->dev, "Assigned Address=%d\n", udc->setup.wValue);
   652			return;
   653		case USB_REQ_CLEAR_FEATURE:
   654		case USB_REQ_SET_FEATURE:
   655			/* Requests with no data phase, status phase from udc */
   656			if ((udc->setup.bRequestType & USB_TYPE_MASK)
   657					!= USB_TYPE_STANDARD)
   658				break;
   659			return max3420_set_clear_feature(udc);
   660		default:
   661			break;
   662		}
   663	
   664		if (udc->driver->setup(&udc->gadget, &setup) < 0) {
   665			/* Stall EP0 */
   666			spi_wr8(udc, MAX3420_REG_EPSTALLS,
   667				STLEP0IN | STLEP0OUT | STLSTAT);
   668		}
   669	}
   670	

---
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" (33489 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ