* drivers/platform/x86/socperf/haswellunc_sa.c:203:39: sparse: sparse: cast removes address space '__iomem' of expression
@ 2022-07-29 4:38 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-29 4:38 UTC (permalink / raw)
To: Manisha Chinthapally; +Cc: kbuild-all, linux-kernel, Faycal Benmlih
tree: https://github.com/mchinth/linux sep_socwatch_linux_5_10
head: c55df4a2b60fc7c6c4d00fd9f9fb447087833513
commit: 4a8adda8065c4c6944ffedd3025605c845c262a5 SEP/SOCWATCH resolve build errors after rebasing to linux v5.6-rc3
date: 1 year, 10 months ago
config: x86_64-randconfig-s022 (https://download.01.org/0day-ci/archive/20220729/202207291223.XKAecRuS-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/mchinth/linux/commit/4a8adda8065c4c6944ffedd3025605c845c262a5
git remote add mchinth https://github.com/mchinth/linux
git fetch --no-tags mchinth sep_socwatch_linux_5_10
git checkout 4a8adda8065c4c6944ffedd3025605c845c262a5
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/platform/x86/socperf/haswellunc_sa.c:203:39: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socperf/haswellunc_sa.c:395:10: sparse: sparse: Initializer entry defined twice
drivers/platform/x86/socperf/haswellunc_sa.c:399:10: sparse: also defined here
--
>> drivers/platform/x86/socperf/soc_uncore.c:756:47: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socperf/soc_uncore.c:889:10: sparse: sparse: Initializer entry defined twice
drivers/platform/x86/socperf/soc_uncore.c:893:10: sparse: also defined here
--
>> drivers/platform/x86/socperf/npk_uncore.c:292:39: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socperf/npk_uncore.c:492:10: sparse: sparse: Initializer entry defined twice
drivers/platform/x86/socperf/npk_uncore.c:496:10: sparse: also defined here
--
>> drivers/platform/x86/socwatch/sw_telem.c:239:33: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:242:28: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:245:58: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitInterfaceAddr @@
drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitInterfaceAddr
drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitDataAddr @@
drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitDataAddr
>> drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *ssram_virt_addr @@
drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: got unsigned long long volatile [usertype] *ssram_virt_addr
drivers/platform/x86/socwatch/sw_telem.c:280:28: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:283:28: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:286:29: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:289:29: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:292:56: sparse: sparse: cast removes address space '__iomem' of expression
drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCCmdAddr @@
drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCCmdAddr
drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCStsAddr @@
drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCStsAddr
drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCWBufAddr @@
drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCWBufAddr
drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCRBufAddr @@
drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCRBufAddr
drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *ssram_virt_addr @@
drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: expected void volatile [noderef] __iomem *addr
drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: got unsigned long long volatile [usertype] *ssram_virt_addr
>> drivers/platform/x86/socwatch/sw_telem.c:671:5: sparse: sparse: symbol 'read_telem' was not declared. Should it be static?
--
>> drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int flags @@ got restricted gfp_t @@
drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: expected unsigned int flags
drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: got restricted gfp_t
vim +/__iomem +203 drivers/platform/x86/socperf/haswellunc_sa.c
71
72 /*!
73 * @fn static VOID hswunc_sa_Write_PMU(VOID*)
74 *
75 * @brief Initial write of PMU registers
76 * Walk through the entries and write the value of the register accordingly.
77 * When current_group = 0, then this is the first time this routine is called,
78 *
79 * @param param - device index
80 *
81 * @return None
82 *
83 * <I>Special Notes:</I>
84 */
85 static VOID hswunc_sa_Write_PMU(VOID *param)
86 {
87 U32 dev_idx = *((U32 *)param);
88 U32 cur_grp = LWPMU_DEVICE_cur_group(device_uncore);
89 ECB pecb = LWPMU_DEVICE_PMU_register_data(device_uncore)[cur_grp];
90 DRV_PCI_DEVICE_ENTRY dpden;
91 U32 pci_address;
92 U32 bar_lo;
93 U64 bar_hi;
94 U64 final_bar;
95 U64 physical_address;
96 U32 dev_index = 0;
97 S32 bar_list[HSWUNC_SA_MAX_PCI_DEVICES];
98 U32 bar_index = 0;
99 U64 gdxc_bar = 0;
100 U32 map_size = 0;
101 U64 virtual_address = 0;
102 U64 mmio_offset = 0;
103 U32 bar_name = 0;
104 DRV_PCI_DEVICE_ENTRY curr_pci_entry = NULL;
105 U32 next_bar_offset = 0;
106 U32 i = 0;
107
108 for (dev_index = 0; dev_index < HSWUNC_SA_MAX_PCI_DEVICES;
109 dev_index++) {
110 bar_list[dev_index] = -1;
111 }
112
113 device_id = dev_idx;
114 // initialize the CHAP per-counter overflow numbers
115 for (i = 0; i < HSWUNC_SA_MAX_COUNTERS; i++) {
116 counter_overflow[i] = 0;
117 socperf_pcb[0].last_uncore_count[i] = 0;
118 }
119
120 ECB_pcidev_entry_list(pecb) = (DRV_PCI_DEVICE_ENTRY)(
121 (S8 *)pecb + ECB_pcidev_list_offset(pecb));
122 dpden = ECB_pcidev_entry_list(pecb);
123
124 if (counter_virtual_address) {
125 for (i = 0; i < ECB_num_entries(pecb); i++) {
126 writel(HSWUNC_SA_CHAP_STOP,
127 (void __iomem *)(((char *)(UIOP)counter_virtual_address) +
128 HSWUNC_SA_CHAP_CTRL_REG_OFFSET +
129 i * 0x10));
130 }
131 }
132
133 for (dev_index = 0; dev_index < ECB_num_pci_devices(pecb);
134 dev_index++) {
135 curr_pci_entry = &dpden[dev_index];
136 mmio_offset = DRV_PCI_DEVICE_ENTRY_base_offset_for_mmio(
137 curr_pci_entry);
138 bar_name = DRV_PCI_DEVICE_ENTRY_bar_name(curr_pci_entry);
139 if (DRV_PCI_DEVICE_ENTRY_config_type(curr_pci_entry) ==
140 UNC_PCICFG) {
141 pci_address = FORM_PCI_ADDR(
142 DRV_PCI_DEVICE_ENTRY_bus_no(curr_pci_entry),
143 DRV_PCI_DEVICE_ENTRY_dev_no(curr_pci_entry),
144 DRV_PCI_DEVICE_ENTRY_func_no(curr_pci_entry),
145 mmio_offset);
146 SOCPERF_PCI_Write_Ulong(
147 pci_address,
148 DRV_PCI_DEVICE_ENTRY_value(curr_pci_entry));
149 continue;
150 }
151 // UNC_MMIO programming
152 if (bar_list[bar_name] != -1) {
153 bar_index = bar_list[bar_name];
154 virtual_address = DRV_PCI_DEVICE_ENTRY_virtual_address(
155 &dpden[bar_index]);
156 DRV_PCI_DEVICE_ENTRY_virtual_address(curr_pci_entry) =
157 DRV_PCI_DEVICE_ENTRY_virtual_address(
158 &dpden[bar_index]);
159 writel(DRV_PCI_DEVICE_ENTRY_value(curr_pci_entry),
160 (void __iomem *)(((char *)(UIOP)virtual_address) +
161 mmio_offset));
162 continue;
163 }
164 if (bar_name == UNC_GDXCBAR) {
165 DRV_PCI_DEVICE_ENTRY_bar_address(curr_pci_entry) =
166 gdxc_bar;
167 } else {
168 pci_address = FORM_PCI_ADDR(
169 DRV_PCI_DEVICE_ENTRY_bus_no(curr_pci_entry),
170 DRV_PCI_DEVICE_ENTRY_dev_no(curr_pci_entry),
171 DRV_PCI_DEVICE_ENTRY_func_no(curr_pci_entry),
172 DRV_PCI_DEVICE_ENTRY_bar_offset(
173 curr_pci_entry));
174 bar_lo = SOCPERF_PCI_Read_Ulong(pci_address);
175 next_bar_offset = DRV_PCI_DEVICE_ENTRY_bar_offset(
176 curr_pci_entry) +
177 HSWUNC_SA_NEXT_ADDR_OFFSET;
178 pci_address = FORM_PCI_ADDR(
179 DRV_PCI_DEVICE_ENTRY_bus_no(curr_pci_entry),
180 DRV_PCI_DEVICE_ENTRY_dev_no(curr_pci_entry),
181 DRV_PCI_DEVICE_ENTRY_func_no(curr_pci_entry),
182 next_bar_offset);
183 bar_hi = SOCPERF_PCI_Read_Ulong(pci_address);
184 final_bar =
185 (bar_hi << HSWUNC_SA_BAR_ADDR_SHIFT) | bar_lo;
186 final_bar &= HSWUNC_SA_BAR_ADDR_MASK;
187
188 DRV_PCI_DEVICE_ENTRY_bar_address(curr_pci_entry) =
189 final_bar;
190 }
191 physical_address =
192 DRV_PCI_DEVICE_ENTRY_bar_address(curr_pci_entry);
193
194 if (physical_address) {
195 if (bar_name == UNC_MCHBAR) {
196 map_size = HSWUNC_SA_MCHBAR_MMIO_PAGE_SIZE;
197 } else if (bar_name == UNC_PCIEXBAR) {
198 map_size = HSWUNC_SA_PCIEXBAR_MMIO_PAGE_SIZE;
199 } else {
200 map_size = HSWUNC_SA_OTHER_BAR_MMIO_PAGE_SIZE;
201 }
202 DRV_PCI_DEVICE_ENTRY_virtual_address(curr_pci_entry) =
> 203 (U64)(UIOP)ioremap_cache(physical_address,
204 map_size);
205 virtual_address = DRV_PCI_DEVICE_ENTRY_virtual_address(
206 curr_pci_entry);
207
208 if (!gdxc_bar && bar_name == UNC_MCHBAR) {
209 bar_lo = readl(
210 (void __iomem *)((char *)(UIOP)virtual_address +
211 HSWUNC_SA_GDXCBAR_OFFSET_LO));
212 bar_hi = readl(
213 (void __iomem *)((char *)(UIOP)virtual_address +
214 HSWUNC_SA_GDXCBAR_OFFSET_HI));
215 gdxc_bar =
216 (bar_hi << HSWUNC_SA_BAR_ADDR_SHIFT) |
217 bar_lo;
218 gdxc_bar = gdxc_bar & HSWUNC_SA_GDXCBAR_MASK;
219 }
220 writel((U32)DRV_PCI_DEVICE_ENTRY_value(curr_pci_entry),
221 (void __iomem *)(((char *)(UIOP)virtual_address) +
222 mmio_offset));
223 bar_list[bar_name] = dev_index;
224 if (counter_virtual_address == 0 &&
225 bar_name == UNC_CHAPADR) {
226 counter_virtual_address = virtual_address;
227 }
228 }
229 }
230 }
231
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-29 4:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-29 4:38 drivers/platform/x86/socperf/haswellunc_sa.c:203:39: sparse: sparse: cast removes address space '__iomem' of expression kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.