[jarkko-tpmdd:master 3/3] drivers/char/tpm/tpm_tis_synquacer.c:89:26: warning: passing argument 1 of 'iowrite8' makes integer from pointer without a cast
From: kernel test robot
Date: Sat Apr 09 2022 - 13:47:35 EST
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: parisc-allmodconfig (https://download.01.org/0day-ci/archive/20220410/202204100146.Ej10FNcI-lkp@xxxxxxxxx/config)
compiler: hppa-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# 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 O=build_dir ARCH=parisc SHELL=/bin/bash drivers/char/tpm/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
drivers/char/tpm/tpm_tis_synquacer.c: In function 'tpm_tis_synquacer_read_bytes':
drivers/char/tpm/tpm_tis_synquacer.c:45:13: warning: unused variable 'result32' [-Wunused-variable]
45 | u32 result32;
| ^~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:44:13: warning: unused variable 'result16' [-Wunused-variable]
44 | u16 result16;
| ^~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:43:16: warning: unused variable 'result_le32' [-Wunused-variable]
43 | __le32 result_le32;
| ^~~~~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:42:16: warning: unused variable 'result_le16' [-Wunused-variable]
42 | __le16 result_le16;
| ^~~~~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c: In function 'tpm_tis_synquacer_write_bytes':
>> drivers/char/tpm/tpm_tis_synquacer.c:89:26: warning: passing argument 1 of 'iowrite8' makes integer from pointer without a cast [-Wint-conversion]
89 | iowrite8(&value[3], phy->iobase + addr + 3);
| ^~~~~~~~~
| |
| const u8 * {aka const unsigned char *}
In file included from arch/parisc/include/asm/io.h:311,
from include/linux/io.h:13,
from drivers/char/tpm/tpm.h:26,
from drivers/char/tpm/tpm_tis_synquacer.c:14:
include/asm-generic/iomap.h:50:22: note: expected 'u8' {aka 'unsigned char'} but argument is of type 'const u8 *' {aka 'const unsigned char *'}
50 | extern void iowrite8(u8, void __iomem *);
| ^~
drivers/char/tpm/tpm_tis_synquacer.c:90:26: warning: passing argument 1 of 'iowrite8' makes integer from pointer without a cast [-Wint-conversion]
90 | iowrite8(&value[2], phy->iobase + addr + 2);
| ^~~~~~~~~
| |
| const u8 * {aka const unsigned char *}
In file included from arch/parisc/include/asm/io.h:311,
from include/linux/io.h:13,
from drivers/char/tpm/tpm.h:26,
from drivers/char/tpm/tpm_tis_synquacer.c:14:
include/asm-generic/iomap.h:50:22: note: expected 'u8' {aka 'unsigned char'} but argument is of type 'const u8 *' {aka 'const unsigned char *'}
50 | extern void iowrite8(u8, void __iomem *);
| ^~
drivers/char/tpm/tpm_tis_synquacer.c:91:26: warning: passing argument 1 of 'iowrite8' makes integer from pointer without a cast [-Wint-conversion]
91 | iowrite8(&value[1], phy->iobase + addr + 1);
| ^~~~~~~~~
| |
| const u8 * {aka const unsigned char *}
In file included from arch/parisc/include/asm/io.h:311,
from include/linux/io.h:13,
from drivers/char/tpm/tpm.h:26,
from drivers/char/tpm/tpm_tis_synquacer.c:14:
include/asm-generic/iomap.h:50:22: note: expected 'u8' {aka 'unsigned char'} but argument is of type 'const u8 *' {aka 'const unsigned char *'}
50 | extern void iowrite8(u8, void __iomem *);
| ^~
drivers/char/tpm/tpm_tis_synquacer.c:92:26: warning: passing argument 1 of 'iowrite8' makes integer from pointer without a cast [-Wint-conversion]
92 | iowrite8(&value[0], phy->iobase + addr);
| ^~~~~~~~~
| |
| const u8 * {aka const unsigned char *}
In file included from arch/parisc/include/asm/io.h:311,
from include/linux/io.h:13,
from drivers/char/tpm/tpm.h:26,
from drivers/char/tpm/tpm_tis_synquacer.c:14:
include/asm-generic/iomap.h:50:22: note: expected 'u8' {aka 'unsigned char'} but argument is of type 'const u8 *' {aka 'const unsigned char *'}
50 | extern void iowrite8(u8, void __iomem *);
| ^~
drivers/char/tpm/tpm_tis_synquacer.c:75:13: warning: unused variable 'result32' [-Wunused-variable]
75 | u32 result32;
| ^~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:74:13: warning: unused variable 'result16' [-Wunused-variable]
74 | u16 result16;
| ^~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:73:16: warning: unused variable 'result_le32' [-Wunused-variable]
73 | __le32 result_le32;
| ^~~~~~~~~~~
drivers/char/tpm/tpm_tis_synquacer.c:72:16: warning: unused variable 'result_le16' [-Wunused-variable]
72 | __le16 result_le16;
| ^~~~~~~~~~~
vim +/iowrite8 +89 drivers/char/tpm/tpm_tis_synquacer.c
36
37 static int tpm_tis_synquacer_read_bytes(struct tpm_tis_data *data, u32 addr,
38 u16 len, u8 *result,
39 enum tpm_tis_io_mode io_mode)
40 {
41 struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data);
42 __le16 result_le16;
> 43 __le32 result_le32;
44 u16 result16;
45 u32 result32;
46
47 switch (io_mode) {
48 case TPM_TIS_PHYS_8:
49 while (len--)
50 *result++ = ioread8(phy->iobase + addr);
51 break;
52 case TPM_TIS_PHYS_16:
53 result[1] = ioread8(phy->iobase + addr + 1);
54 result[0] = ioread8(phy->iobase + addr);
55 break;
56 case TPM_TIS_PHYS_32:
57 result[3] = ioread8(phy->iobase + addr + 3);
58 result[2] = ioread8(phy->iobase + addr + 2);
59 result[1] = ioread8(phy->iobase + addr + 1);
60 result[0] = ioread8(phy->iobase + addr);
61 break;
62 }
63
64 return 0;
65 }
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