lkml.org 
[lkml]   [2022]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[jarkko-tpmdd:master 3/3] drivers/char/tpm/tpm_tis_synquacer.c:89:32: sparse: sparse: incorrect type in argument 1 (different base types)
tree:   git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git master
head: b6e0cdb87bf37357489de1069d55bd59f008daeb
commit: b6e0cdb87bf37357489de1069d55bd59f008daeb [3/3] tpm: Remove read16/read32/write32 calls from tpm_tis_phy_ops
config: arc-randconfig-s032-20220414 (https://download.01.org/0day-ci/archive/20220415/202204151656.q0kIOZbG-lkp@intel.com/config)
compiler: arc-elf-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=b6e0cdb87bf37357489de1069d55bd59f008daeb
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 b6e0cdb87bf37357489de1069d55bd59f008daeb
# 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=arc SHELL=/bin/bash drivers/char/tpm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.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

\
 
 \ /
  Last update: 2022-04-15 10:46    [W:0.108 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site