[<prev] [next>] [day] [month] [year] [list]
Message-ID: <YjmFy/G/YSHQuwW1@iki.fi>
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