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]
Date:   Wed, 19 May 2021 16:07:08 +0800
From:   kernel test robot <lkp@...el.com>
To:     Mika Westerberg <mika.westerberg@...ux.intel.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Lee Jones <lee.jones@...aro.org>,
        Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Subject: drivers/usb/typec/tcpm/wcove.c:380:50: sparse: sparse: incorrect
 type in argument 1 (different base types)

Hi Mika,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ac91e6c6033ebc12c5c1e4aa171b81a662bd70f
commit: 25f1ca31e230598eaf3c38d387a355a64bd772a7 platform/x86: intel_pmc_ipc: Convert to MFD
date:   1 year, 1 month ago
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=25f1ca31e230598eaf3c38d387a355a64bd772a7
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 25f1ca31e230598eaf3c38d387a355a64bd772a7
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386 

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


sparse warnings: (new ones prefixed by >>)
>> drivers/usb/typec/tcpm/wcove.c:380:50: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] header @@     got restricted __le16 const [usertype] header @@
   drivers/usb/typec/tcpm/wcove.c:380:50: sparse:     expected unsigned short [usertype] header
   drivers/usb/typec/tcpm/wcove.c:380:50: sparse:     got restricted __le16 const [usertype] header

vim +380 drivers/usb/typec/tcpm/wcove.c

3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  356  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  357  static int wcove_pd_transmit(struct tcpc_dev *tcpc,
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  358  			     enum tcpm_transmit_type type,
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  359  			     const struct pd_message *msg)
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  360  {
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  361  	struct wcove_typec *wcove = tcpc_to_wcove(tcpc);
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  362  	unsigned int info = 0;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  363  	unsigned int cmd;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  364  	int ret;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  365  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  366  	ret = regmap_read(wcove->regmap, USBC_TXCMD, &cmd);
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  367  	if (ret)
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  368  		return ret;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  369  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  370  	if (!(cmd & USBC_TXCMD_BUF_RDY)) {
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  371  		dev_warn(wcove->dev, "%s: Last transmission still ongoing!",
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  372  			 __func__);
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  373  		return -EBUSY;
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  374  	}
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  375  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  376  	if (msg) {
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  377  		const u8 *data = (void *)msg;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  378  		int i;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  379  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20 @380  		for (i = 0; i < pd_header_cnt(msg->header) * 4 + 2; i++) {
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  381  			ret = regmap_write(wcove->regmap, USBC_TX_DATA + i,
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  382  					   data[i]);
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  383  			if (ret)
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  384  				return ret;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  385  		}
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  386  	}
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  387  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  388  	switch (type) {
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  389  	case TCPC_TX_SOP:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  390  	case TCPC_TX_SOP_PRIME:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  391  	case TCPC_TX_SOP_PRIME_PRIME:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  392  	case TCPC_TX_SOP_DEBUG_PRIME:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  393  	case TCPC_TX_SOP_DEBUG_PRIME_PRIME:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  394  		info = type + 1;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  395  		cmd = USBC_TXCMD_MSG;
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  396  		break;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  397  	case TCPC_TX_HARD_RESET:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  398  		cmd = USBC_TXCMD_HR;
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  399  		break;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  400  	case TCPC_TX_CABLE_RESET:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  401  		cmd = USBC_TXCMD_CR;
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  402  		break;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  403  	case TCPC_TX_BIST_MODE_2:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  404  		cmd = USBC_TXCMD_BIST;
d2061f9cc32dbb drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-03-21  405  		break;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  406  	default:
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  407  		return -EINVAL;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  408  	}
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  409  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  410  	/* NOTE Setting maximum number of retries (7) */
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  411  	ret = regmap_write(wcove->regmap, USBC_TXINFO,
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  412  			   info | USBC_TXINFO_RETRIES(7));
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  413  	if (ret)
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  414  		return ret;
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  415  
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  416  	return regmap_write(wcove->regmap, USBC_TXCMD, cmd | USBC_TXCMD_START);
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  417  }
3c4fb9f1692142 drivers/usb/typec/typec_wcove.c Heikki Krogerus 2017-09-20  418  

:::::: The code at line 380 was first introduced by commit
:::::: 3c4fb9f169214290ec9a943907321e6265b36f65 usb: typec: wcove: start using tcpm for USB PD support

:::::: TO: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
:::::: CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ