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:   Tue, 22 Mar 2022 10:16:11 +0200
From:   Jarkko Sakkinen <jarkko@...nel.org>
To:     Johannes Holland <johannes.holland@...ineon.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: Re: [jarkko-tpmdd:master 27/27]

On Tue, Mar 22, 2022 at 02:41:43PM +0800, kernel test robot wrote:
> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git master
> head:   a536629ef32d127d26f3886f1fd480708fd5ac20
> commit: a536629ef32d127d26f3886f1fd480708fd5ac20 [27/27] tpm: Remove read16/read32/write32 calls from tpm_tis_phy_ops
> config: csky-randconfig-s032-20220321 (https://download.01.org/0day-ci/archive/20220322/202203221451.saNVXUZx-lkp@intel.com/config)
> compiler: csky-linux-gcc (GCC) 11.2.0
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # apt-get install sparse
>         # sparse version: v0.6.4-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/commit/?id=a536629ef32d127d26f3886f1fd480708fd5ac20
>         git remote add jarkko-tpmdd git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
>         git fetch --no-tags jarkko-tpmdd master
>         git checkout a536629ef32d127d26f3886f1fd480708fd5ac20
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=csky SHELL=/bin/bash drivers/char/tpm/
> 
> 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/char/tpm/tpm_tis_synquacer.c:89:32: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned char [usertype] value @@     got unsigned char const [usertype] * @@
>    drivers/char/tpm/tpm_tis_synquacer.c:89:32: sparse:     expected unsigned char [usertype] value
>    drivers/char/tpm/tpm_tis_synquacer.c:89:32: sparse:     got unsigned char const [usertype] *
>    drivers/char/tpm/tpm_tis_synquacer.c:90:32: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned char [usertype] value @@     got unsigned char const [usertype] * @@
>    drivers/char/tpm/tpm_tis_synquacer.c:90:32: sparse:     expected unsigned char [usertype] value
>    drivers/char/tpm/tpm_tis_synquacer.c:90:32: sparse:     got unsigned char const [usertype] *
>    drivers/char/tpm/tpm_tis_synquacer.c:91:32: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned char [usertype] value @@     got unsigned char const [usertype] * @@
>    drivers/char/tpm/tpm_tis_synquacer.c:91:32: sparse:     expected unsigned char [usertype] value
>    drivers/char/tpm/tpm_tis_synquacer.c:91:32: sparse:     got unsigned char const [usertype] *
>    drivers/char/tpm/tpm_tis_synquacer.c:92:32: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned char [usertype] value @@     got unsigned char const [usertype] * @@
>    drivers/char/tpm/tpm_tis_synquacer.c:92:32: sparse:     expected unsigned char [usertype] value
>    drivers/char/tpm/tpm_tis_synquacer.c:92:32: sparse:     got unsigned char const [usertype] *
> >> drivers/char/tpm/tpm_tis_synquacer.c:89:33: sparse: sparse: non size-preserving pointer to integer cast
>    drivers/char/tpm/tpm_tis_synquacer.c:90:33: sparse: sparse: non size-preserving pointer to integer cast
>    drivers/char/tpm/tpm_tis_synquacer.c:91:33: sparse: sparse: non size-preserving pointer to integer cast
>    drivers/char/tpm/tpm_tis_synquacer.c:92:33: sparse: sparse: non size-preserving pointer to integer cast
> 
> vim +89 drivers/char/tpm/tpm_tis_synquacer.c
> 
>     66	
>     67	static int tpm_tis_synquacer_write_bytes(struct tpm_tis_data *data, u32 addr,
>     68						 u16 len, const u8 *value,
>     69						 enum tpm_tis_io_mode io_mode)
>     70	{
>     71		struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data);
>     72		__le16 result_le16;
>     73		__le32 result_le32;
>     74		u16 result16;
>     75		u32 result32;
>     76	
>     77		switch (io_mode) {
>     78		case TPM_TIS_PHYS_8:
>     79			while (len--)
>     80				iowrite8(*value++, phy->iobase + addr);
>     81			break;
>     82		case TPM_TIS_PHYS_16:
>     83			return -EINVAL;
>     84		case TPM_TIS_PHYS_32:
>     85			/*
>     86			 * Due to the limitation of SPI controller on SynQuacer,
>     87			 * 16/32 bits access must be done in byte-wise and descending order.
>     88			 */
>   > 89			iowrite8(&value[3], phy->iobase + addr + 3);
>     90			iowrite8(&value[2], phy->iobase + addr + 2);
>     91			iowrite8(&value[1], phy->iobase + addr + 1);
>     92			iowrite8(&value[0], phy->iobase + addr);
>     93			break;
>     94		}
>     95	
>     96		return 0;
>     97	}
>     98	
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://01.org/lkp

Johannes, I'll drop your patch, please send a new one with the sparse
error fixed.

BR, Jarkko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ