tree:
https://android.googlesource.com/kernel/common android-4.19
head: 80933739d5655b8a22ce23451c6415d9c7a0387a
commit: c9a574054dbbc299aac39781a1d19a36fe0bc35a [2/9] ANDROID: GKI: drivers: Add dma
removed ops
config: arm-randconfig-s032-20210120 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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.3-208-g46a52ca4-dirty
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-4.19
git checkout c9a574054dbbc299aac39781a1d19a36fe0bc35a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
kernel/dma/removed.c:107:30: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected void [noderef] <asn:2> *addr @@ got void * @@
kernel/dma/removed.c:107:30: sparse: expected void [noderef] <asn:2> *addr
kernel/dma/removed.c:107:30: sparse: got void *
kernel/dma/removed.c:119:38: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected void [noderef] <asn:2> *[assigned] addr @@ got
void * @@
kernel/dma/removed.c:119:38: sparse: expected void [noderef] <asn:2>
*[assigned] addr
kernel/dma/removed.c:119:38: sparse: got void *
kernel/dma/removed.c:127:16: sparse: sparse: incorrect type in return expression
(different address spaces) @@ expected void * @@ got void [noderef] <asn:2>
*[assigned] addr @@
kernel/dma/removed.c:127:16: sparse: expected void *
kernel/dma/removed.c:127:16: sparse: got void [noderef] <asn:2> *[assigned]
addr
kernel/dma/removed.c:71:6: sparse: sparse: symbol 'removed_alloc' was not
declared. Should it be static?
kernel/dma/removed.c:131:5: sparse: sparse: symbol 'removed_mmap' was not
declared. Should it be static?
> kernel/dma/removed.c:146:25: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void volatile [noderef]
<asn:2> *iomem_cookie @@ got void *cpu_addr @@
kernel/dma/removed.c:146:25: sparse: expected void volatile [noderef] <asn:2>
*iomem_cookie
kernel/dma/removed.c:146:25: sparse: got void *cpu_addr
kernel/dma/removed.c:138:6: sparse: sparse: symbol 'removed_free' was not
declared. Should it be static?
kernel/dma/removed.c:187:6: sparse: sparse: symbol
'removed_sync_single_for_device' was not declared. Should it be static?
kernel/dma/removed.c:193:6: sparse: sparse: symbol 'removed_sync_sg_for_cpu'
was not declared. Should it be static?
kernel/dma/removed.c:199:6: sparse: sparse: symbol 'removed_sync_sg_for_device'
was not declared. Should it be static?
> kernel/dma/removed.c:213:17: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected void volatile [noderef]
<asn:2> *iomem_cookie @@ got void *remapped_address @@
kernel/dma/removed.c:213:17: sparse: expected void volatile [noderef] <asn:2>
*iomem_cookie
kernel/dma/removed.c:213:17: sparse: got void *remapped_address
kernel/dma/removed.c:211:6: sparse: sparse: symbol 'removed_unremap' was not
declared. Should it be static?
kernel/dma/removed.c:228:35: sparse: sparse: incorrect type in initializer (different
address spaces) @@ expected void *( *remap )( ... ) @@ got void [noderef]
<asn:2> *( * )( ... ) @@
kernel/dma/removed.c:228:35: sparse: expected void *( *remap )( ... )
kernel/dma/removed.c:228:35: sparse: got void [noderef] <asn:2> *( * )( ...
)
kernel/dma/removed.c:71:7: warning: no previous prototype for 'removed_alloc'
[-Wmissing-prototypes]
71 | void *removed_alloc(struct device *dev, size_t size, dma_addr_t *handle,
| ^~~~~~~~~~~~~
kernel/dma/removed.c:131:5: warning: no previous prototype for 'removed_mmap'
[-Wmissing-prototypes]
131 | int removed_mmap(struct device *dev, struct vm_area_struct *vma,
| ^~~~~~~~~~~~
kernel/dma/removed.c:138:6: warning: no previous prototype for 'removed_free'
[-Wmissing-prototypes]
138 | void removed_free(struct device *dev, size_t size, void *cpu_addr,
| ^~~~~~~~~~~~
kernel/dma/removed.c:187:6: warning: no previous prototype for
'removed_sync_single_for_device' [-Wmissing-prototypes]
187 | void removed_sync_single_for_device(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/dma/removed.c:193:6: warning: no previous prototype for
'removed_sync_sg_for_cpu' [-Wmissing-prototypes]
193 | void removed_sync_sg_for_cpu(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/dma/removed.c:199:6: warning: no previous prototype for
'removed_sync_sg_for_device' [-Wmissing-prototypes]
199 | void removed_sync_sg_for_device(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/dma/removed.c:211:6: warning: no previous prototype for
'removed_unremap' [-Wmissing-prototypes]
211 | void removed_unremap(struct device *dev, void *remapped_address, size_t size)
| ^~~~~~~~~~~~~~~
kernel/dma/removed.c:61:12: warning: 'dma_assign_removed_region' defined but
not used [-Wunused-function]
61 | static int dma_assign_removed_region(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/dma/removed.c:33:12: warning: 'dma_init_removed_memory' defined but not
used [-Wunused-function]
33 | static int dma_init_removed_memory(phys_addr_t phys_addr, size_t size,
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +146 kernel/dma/removed.c
137
138 void removed_free(struct device *dev, size_t size, void *cpu_addr,
139 dma_addr_t handle, unsigned long attrs)
140 {
141 bool no_kernel_mapping = attrs & DMA_ATTR_NO_KERNEL_MAPPING;
142 struct removed_region *dma_mem = dev->removed_mem;
143
144 size = PAGE_ALIGN(size);
145 if (!no_kernel_mapping)
146 iounmap(cpu_addr);
147 mutex_lock(&dma_mem->lock);
148 bitmap_clear(dma_mem->bitmap, (handle - dma_mem->base) >> PAGE_SHIFT,
149 size >> PAGE_SHIFT);
150 mutex_unlock(&dma_mem->lock);
151 }
152
153 static dma_addr_t removed_map_page(struct device *dev, struct page *page,
154 unsigned long offset, size_t size,
155 enum dma_data_direction dir,
156 unsigned long attrs)
157 {
158 return ~(dma_addr_t)0;
159 }
160
161 static void removed_unmap_page(struct device *dev, dma_addr_t dma_handle,
162 size_t size, enum dma_data_direction dir,
163 unsigned long attrs)
164 {
165 }
166
167 static int removed_map_sg(struct device *dev, struct scatterlist *sg,
168 int nents, enum dma_data_direction dir,
169 unsigned long attrs)
170 {
171 return 0;
172 }
173
174 static void removed_unmap_sg(struct device *dev,
175 struct scatterlist *sg, int nents,
176 enum dma_data_direction dir,
177 unsigned long attrs)
178 {
179 }
180
181 static void removed_sync_single_for_cpu(struct device *dev,
182 dma_addr_t dma_handle, size_t size,
183 enum dma_data_direction dir)
184 {
185 }
186
187 void removed_sync_single_for_device(struct device *dev,
188 dma_addr_t dma_handle, size_t size,
189 enum dma_data_direction dir)
190 {
191 }
192
193 void removed_sync_sg_for_cpu(struct device *dev,
194 struct scatterlist *sg, int nents,
195 enum dma_data_direction dir)
196 {
197 }
198
199 void removed_sync_sg_for_device(struct device *dev,
200 struct scatterlist *sg, int nents,
201 enum dma_data_direction dir)
202 {
203 }
204
205 static void __iomem *removed_remap(struct device *dev, void *cpu_addr,
206 dma_addr_t handle, size_t size, unsigned long attrs)
207 {
208 return ioremap_wc(handle, size);
209 }
210
211 void removed_unremap(struct device *dev, void *remapped_address, size_t size)
212 {
213 iounmap(remapped_address);
214 }
215
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org