* [intel-lts:4.19/android_s 15445/25248] kernel/dma/removed.c:71:7: warning: no previous prototype for 'removed_alloc'
@ 2021-11-09 1:58 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-11-09 1:58 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7864 bytes --]
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_s
head: d47c20847da6957c8b15960571893193936c8c1e
commit: c9a574054dbbc299aac39781a1d19a36fe0bc35a [15445/25248] ANDROID: GKI: drivers: Add dma removed ops
config: mips-randconfig-r016-20211028 (attached as .config)
compiler: mipsel-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://github.com/intel/linux-intel-lts/commit/c9a574054dbbc299aac39781a1d19a36fe0bc35a
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 4.19/android_s
git checkout c9a574054dbbc299aac39781a1d19a36fe0bc35a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> 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 +/removed_alloc +71 kernel/dma/removed.c
70
> 71 void *removed_alloc(struct device *dev, size_t size, dma_addr_t *handle,
72 gfp_t gfp, unsigned long attrs)
73 {
74 bool no_kernel_mapping = attrs & DMA_ATTR_NO_KERNEL_MAPPING;
75 bool skip_zeroing = attrs & DMA_ATTR_SKIP_ZEROING;
76 int pageno;
77 unsigned long order;
78 void __iomem *addr = NULL;
79 struct removed_region *dma_mem = dev->removed_mem;
80 int nbits;
81 unsigned int align;
82
83 if (!gfpflags_allow_blocking(gfp))
84 return NULL;
85
86 size = PAGE_ALIGN(size);
87 nbits = size >> PAGE_SHIFT;
88 order = get_order(size);
89
90 if (order > get_order(SZ_1M))
91 order = get_order(SZ_1M);
92
93 align = (1 << order) - 1;
94
95
96 mutex_lock(&dma_mem->lock);
97 pageno = bitmap_find_next_zero_area(dma_mem->bitmap, dma_mem->nr_pages,
98 0, nbits, align);
99
100 if (pageno < dma_mem->nr_pages) {
101 phys_addr_t base = dma_mem->base + pageno * PAGE_SIZE;
102 *handle = base;
103
104 bitmap_set(dma_mem->bitmap, pageno, nbits);
105
106 if (no_kernel_mapping && skip_zeroing) {
107 addr = (void *)NO_KERNEL_MAPPING_DUMMY;
108 goto out;
109 }
110
111 addr = ioremap_wc(base, size);
112 if (WARN_ON(!addr)) {
113 bitmap_clear(dma_mem->bitmap, pageno, nbits);
114 } else {
115 if (!skip_zeroing)
116 memset_io(addr, 0, size);
117 if (no_kernel_mapping) {
118 iounmap(addr);
119 addr = (void *)NO_KERNEL_MAPPING_DUMMY;
120 }
121 *handle = base;
122 }
123 }
124
125 out:
126 mutex_unlock(&dma_mem->lock);
127 return addr;
128 }
129
130
> 131 int removed_mmap(struct device *dev, struct vm_area_struct *vma,
132 void *cpu_addr, dma_addr_t dma_addr, size_t size,
133 unsigned long attrs)
134 {
135 return -ENXIO;
136 }
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(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28717 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-11-09 1:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-09 1:58 [intel-lts:4.19/android_s 15445/25248] kernel/dma/removed.c:71:7: warning: no previous prototype for 'removed_alloc' 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.