drivers/hwspinlock/sprd_hwspinlock.c:141:34: warning: unused variable 'sprd_hwspinlock_of_match'
by kernel test robot
Hi Baolin,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 071a0578b0ce0b0e543d1e38ee6926b9cc21c198
commit: ffd0bbfb378ecd56eac22bf932ccdbf89ac7f725 hwspinlock: Allow drivers to be built with COMPILE_TEST
date: 7 months ago
config: x86_64-randconfig-r005-20201018 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 50cc9a0e6124f6177633b9e5edcee25860cfa094)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ffd0bbfb378ecd56eac22bf932ccdbf89ac7f725
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/hwspinlock/sprd_hwspinlock.c:141:34: warning: unused variable 'sprd_hwspinlock_of_match' [-Wunused-const-variable]
static const struct of_device_id sprd_hwspinlock_of_match[] = {
^
1 warning generated.
vim +/sprd_hwspinlock_of_match +141 drivers/hwspinlock/sprd_hwspinlock.c
d8c8bbbb1aba547 Baolin Wang 2017-05-17 140
d8c8bbbb1aba547 Baolin Wang 2017-05-17 @141 static const struct of_device_id sprd_hwspinlock_of_match[] = {
d8c8bbbb1aba547 Baolin Wang 2017-05-17 142 { .compatible = "sprd,hwspinlock-r3p0", },
d8c8bbbb1aba547 Baolin Wang 2017-05-17 143 { /* sentinel */ }
d8c8bbbb1aba547 Baolin Wang 2017-05-17 144 };
d8c8bbbb1aba547 Baolin Wang 2017-05-17 145 MODULE_DEVICE_TABLE(of, sprd_hwspinlock_of_match);
d8c8bbbb1aba547 Baolin Wang 2017-05-17 146
:::::: The code at line 141 was first introduced by commit
:::::: d8c8bbbb1aba547b6c0d534f87fc68aa338658fc hwspinlock: sprd: Add hardware spinlock driver
:::::: TO: Baolin Wang <baolin.wang(a)spreadtrum.com>
:::::: CC: Bjorn Andersson <bjorn.andersson(a)linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
Re: [PATCH v7 4/4] bus: mhi: Add userspace client interface driver
by kernel test robot
Hi Hemant,
I love your patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on staging/staging-testing linus/master next-20201016]
[cannot apply to linux/master v5.9]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Hemant-Kumar/userspace-MHI-clien...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git f3277cbfba763cd2826396521b9296de67cf1bbc
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.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/0day-ci/linux/commit/6f44d9c0efd29cbd60a4c26843462a573...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Hemant-Kumar/userspace-MHI-client-interface-driver/20201017-140145
git checkout 6f44d9c0efd29cbd60a4c26843462a573050a520
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:11,
from drivers/bus/mhi/uci.c:4:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from include/linux/printk.h:405,
from include/linux/kernel.h:15,
from drivers/bus/mhi/uci.c:4:
drivers/bus/mhi/uci.c: In function 'mhi_queue_inbound':
>> drivers/bus/mhi/uci.c:147:16: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
147 | dev_dbg(dev, "Allocated buf %d of %d size %ld\n", i, nr_trbs,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:129:15: note: in definition of macro '__dynamic_func_call'
129 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:161:2: note: in expansion of macro '_dynamic_func_call'
161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/bus/mhi/uci.c:147:3: note: in expansion of macro 'dev_dbg'
147 | dev_dbg(dev, "Allocated buf %d of %d size %ld\n", i, nr_trbs,
| ^~~~~~~
drivers/bus/mhi/uci.c:147:47: note: format string is defined here
147 | dev_dbg(dev, "Allocated buf %d of %d size %ld\n", i, nr_trbs,
| ~~^
| |
| long int
| %d
In file included from include/linux/printk.h:405,
from include/linux/kernel.h:15,
from drivers/bus/mhi/uci.c:4:
drivers/bus/mhi/uci.c: In function 'mhi_uci_write':
>> drivers/bus/mhi/uci.c:308:15: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
308 | dev_dbg(dev, "%s: to xfer: %lu bytes\n", __func__, count);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:129:15: note: in definition of macro '__dynamic_func_call'
129 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:161:2: note: in expansion of macro '_dynamic_func_call'
161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/bus/mhi/uci.c:308:2: note: in expansion of macro 'dev_dbg'
308 | dev_dbg(dev, "%s: to xfer: %lu bytes\n", __func__, count);
| ^~~~~~~
drivers/bus/mhi/uci.c:308:31: note: format string is defined here
308 | dev_dbg(dev, "%s: to xfer: %lu bytes\n", __func__, count);
| ~~^
| |
| long unsigned int
| %u
In file included from include/linux/printk.h:405,
from include/linux/kernel.h:15,
from drivers/bus/mhi/uci.c:4:
drivers/bus/mhi/uci.c:366:15: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
366 | dev_dbg(dev, "%s: bytes xferred: %lu\n", __func__, bytes_xfered);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:129:15: note: in definition of macro '__dynamic_func_call'
129 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:161:2: note: in expansion of macro '_dynamic_func_call'
161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/bus/mhi/uci.c:366:2: note: in expansion of macro 'dev_dbg'
366 | dev_dbg(dev, "%s: bytes xferred: %lu\n", __func__, bytes_xfered);
| ^~~~~~~
drivers/bus/mhi/uci.c:366:37: note: format string is defined here
366 | dev_dbg(dev, "%s: bytes xferred: %lu\n", __func__, bytes_xfered);
| ~~^
| |
| long unsigned int
| %u
In file included from include/linux/printk.h:405,
from include/linux/kernel.h:15,
from drivers/bus/mhi/uci.c:4:
drivers/bus/mhi/uci.c: In function 'mhi_uci_read':
drivers/bus/mhi/uci.c:447:15: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
447 | dev_dbg(dev, "Copied %lu of %lu bytes\n", to_copy, uchan->dl_size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:129:15: note: in definition of macro '__dynamic_func_call'
129 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:161:2: note: in expansion of macro '_dynamic_func_call'
161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/bus/mhi/uci.c:447:2: note: in expansion of macro 'dev_dbg'
447 | dev_dbg(dev, "Copied %lu of %lu bytes\n", to_copy, uchan->dl_size);
| ^~~~~~~
drivers/bus/mhi/uci.c:447:25: note: format string is defined here
447 | dev_dbg(dev, "Copied %lu of %lu bytes\n", to_copy, uchan->dl_size);
| ~~^
| |
| long unsigned int
| %u
In file included from include/linux/printk.h:405,
from include/linux/kernel.h:15,
from drivers/bus/mhi/uci.c:4:
drivers/bus/mhi/uci.c:447:15: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=]
447 | dev_dbg(dev, "Copied %lu of %lu bytes\n", to_copy, uchan->dl_size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:129:15: note: in definition of macro '__dynamic_func_call'
129 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:161:2: note: in expansion of macro '_dynamic_func_call'
161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/bus/mhi/uci.c:447:2: note: in expansion of macro 'dev_dbg'
447 | dev_dbg(dev, "Copied %lu of %lu bytes\n", to_copy, uchan->dl_size);
| ^~~~~~~
drivers/bus/mhi/uci.c:447:32: note: format string is defined here
vim +147 drivers/bus/mhi/uci.c
120
121 static int mhi_queue_inbound(struct uci_dev *udev)
122 {
123 struct mhi_device *mhi_dev = udev->mhi_dev;
124 struct device *dev = &mhi_dev->dev;
125 int nr_trbs, i, ret = -EIO;
126 size_t dl_buf_size;
127 void *buf;
128 struct uci_buf *ubuf;
129
130 /* dont queue if dl channel is not supported */
131 if (!udev->mhi_dev->dl_chan)
132 return 0;
133
134 nr_trbs = mhi_get_free_desc_count(mhi_dev, DMA_FROM_DEVICE);
135
136 for (i = 0; i < nr_trbs; i++) {
137 buf = kmalloc(udev->mtu, GFP_KERNEL);
138 if (!buf)
139 return -ENOMEM;
140
141 dl_buf_size = udev->mtu - sizeof(*ubuf);
142
143 /* save uci_buf info at the end of buf */
144 ubuf = buf + dl_buf_size;
145 ubuf->data = buf;
146
> 147 dev_dbg(dev, "Allocated buf %d of %d size %ld\n", i, nr_trbs,
148 dl_buf_size);
149
150 ret = mhi_queue_buf(mhi_dev, DMA_FROM_DEVICE, buf, dl_buf_size,
151 MHI_EOT);
152 if (ret) {
153 kfree(buf);
154 dev_err(dev, "Failed to queue buffer %d\n", i);
155 return ret;
156 }
157 }
158
159 return ret;
160 }
161
162 static int mhi_uci_dev_start_chan(struct uci_dev *udev)
163 {
164 int ret = 0;
165 struct uci_chan *uchan;
166
167 mutex_lock(&udev->lock);
168 if (!udev->uchan || !kref_get_unless_zero(&udev->uchan->ref_count)) {
169 uchan = kzalloc(sizeof(*uchan), GFP_KERNEL);
170 if (!uchan) {
171 ret = -ENOMEM;
172 goto error_chan_start;
173 }
174
175 udev->uchan = uchan;
176 uchan->udev = udev;
177 init_waitqueue_head(&uchan->ul_wq);
178 init_waitqueue_head(&uchan->dl_wq);
179 mutex_init(&uchan->write_lock);
180 mutex_init(&uchan->read_lock);
181 spin_lock_init(&uchan->dl_lock);
182 INIT_LIST_HEAD(&uchan->pending);
183
184 ret = mhi_prepare_for_transfer(udev->mhi_dev);
185 if (ret) {
186 dev_err(&udev->mhi_dev->dev, "Error starting transfer channels\n");
187 goto error_chan_cleanup;
188 }
189
190 ret = mhi_queue_inbound(udev);
191 if (ret)
192 goto error_chan_cleanup;
193
194 kref_init(&uchan->ref_count);
195 }
196
197 mutex_unlock(&udev->lock);
198 return 0;
199
200 error_chan_cleanup:
201 mhi_uci_dev_chan_release(&uchan->ref_count);
202 error_chan_start:
203 mutex_unlock(&udev->lock);
204 return ret;
205 }
206
207 static void mhi_uci_dev_release(struct kref *ref)
208 {
209 struct uci_dev *udev =
210 container_of(ref, struct uci_dev, ref_count);
211
212 mutex_destroy(&udev->lock);
213
214 kfree(udev);
215 }
216
217 static int mhi_uci_open(struct inode *inode, struct file *filp)
218 {
219 unsigned int minor = iminor(inode);
220 struct uci_dev *udev = NULL;
221 int ret;
222
223 mutex_lock(&uci_drv_mutex);
224 udev = idr_find(&uci_idr, minor);
225 if (!udev) {
226 pr_debug("uci dev: minor %d not found\n", minor);
227 mutex_unlock(&uci_drv_mutex);
228 return -ENODEV;
229 }
230
231 kref_get(&udev->ref_count);
232 mutex_unlock(&uci_drv_mutex);
233
234 ret = mhi_uci_dev_start_chan(udev);
235 if (ret) {
236 kref_put(&udev->ref_count, mhi_uci_dev_release);
237 return ret;
238 }
239
240 filp->private_data = udev;
241
242 return 0;
243 }
244
245 static int mhi_uci_release(struct inode *inode, struct file *file)
246 {
247 struct uci_dev *udev = file->private_data;
248
249 mutex_lock(&udev->lock);
250 kref_put(&udev->uchan->ref_count, mhi_uci_dev_chan_release);
251 mutex_unlock(&udev->lock);
252
253 kref_put(&udev->ref_count, mhi_uci_dev_release);
254
255 return 0;
256 }
257
258 static __poll_t mhi_uci_poll(struct file *file, poll_table *wait)
259 {
260 struct uci_dev *udev = file->private_data;
261 struct mhi_device *mhi_dev = udev->mhi_dev;
262 struct device *dev = &mhi_dev->dev;
263 struct uci_chan *uchan = udev->uchan;
264 __poll_t mask = 0;
265
266 poll_wait(file, &udev->uchan->ul_wq, wait);
267 poll_wait(file, &udev->uchan->dl_wq, wait);
268
269 if (!udev->enabled) {
270 mask = EPOLLERR;
271 goto done;
272 }
273
274 spin_lock_bh(&uchan->dl_lock);
275 if (!list_empty(&uchan->pending) || uchan->cur_buf) {
276 dev_dbg(dev, "Client can read from node\n");
277 mask |= EPOLLIN | EPOLLRDNORM;
278 }
279 spin_unlock_bh(&uchan->dl_lock);
280
281 if (mhi_get_free_desc_count(mhi_dev, DMA_TO_DEVICE) > 0) {
282 dev_dbg(dev, "Client can write to node\n");
283 mask |= EPOLLOUT | EPOLLWRNORM;
284 }
285
286 dev_dbg(dev, "Client attempted to poll, returning mask 0x%x\n", mask);
287
288 done:
289 return mask;
290 }
291
292 static ssize_t mhi_uci_write(struct file *file,
293 const char __user *buf,
294 size_t count,
295 loff_t *offp)
296 {
297 struct uci_dev *udev = file->private_data;
298 struct mhi_device *mhi_dev = udev->mhi_dev;
299 struct device *dev = &mhi_dev->dev;
300 struct uci_chan *uchan = udev->uchan;
301 size_t bytes_xfered = 0;
302 int ret, nr_avail = 0;
303
304 /* if ul channel is not supported return error */
305 if (!buf || !count || !mhi_dev->ul_chan)
306 return -EINVAL;
307
> 308 dev_dbg(dev, "%s: to xfer: %lu bytes\n", __func__, count);
309
310 mutex_lock(&uchan->write_lock);
311 while (count) {
312 size_t xfer_size;
313 void *kbuf;
314 enum mhi_flags flags;
315
316 /* wait for free descriptors */
317 ret = wait_event_interruptible(uchan->ul_wq,
318 (!udev->enabled) ||
319 (nr_avail = mhi_get_free_desc_count(mhi_dev,
320 DMA_TO_DEVICE)) > 0);
321
322 if (ret == -ERESTARTSYS) {
323 dev_dbg(dev, "Interrupted by a signal in %s, exiting\n",
324 __func__);
325 goto err_mtx_unlock;
326 }
327
328 if (!udev->enabled) {
329 ret = -ENODEV;
330 goto err_mtx_unlock;
331 }
332
333 xfer_size = min_t(size_t, count, udev->mtu);
334 kbuf = kmalloc(xfer_size, GFP_KERNEL);
335 if (!kbuf) {
336 ret = -ENOMEM;
337 goto err_mtx_unlock;
338 }
339
340 ret = copy_from_user(kbuf, buf, xfer_size);
341 if (ret) {
342 kfree(kbuf);
343 ret = -EFAULT;
344 goto err_mtx_unlock;
345 }
346
347 /* if ring is full after this force EOT */
348 if (nr_avail > 1 && (count - xfer_size))
349 flags = MHI_CHAIN;
350 else
351 flags = MHI_EOT;
352
353 ret = mhi_queue_buf(mhi_dev, DMA_TO_DEVICE, kbuf, xfer_size,
354 flags);
355 if (ret) {
356 kfree(kbuf);
357 goto err_mtx_unlock;
358 }
359
360 bytes_xfered += xfer_size;
361 count -= xfer_size;
362 buf += xfer_size;
363 }
364
365 mutex_unlock(&uchan->write_lock);
366 dev_dbg(dev, "%s: bytes xferred: %lu\n", __func__, bytes_xfered);
367
368 return bytes_xfered;
369
370 err_mtx_unlock:
371 mutex_unlock(&uchan->write_lock);
372
373 return ret;
374 }
375
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
drivers/media/i2c/mt9t112.c:670:12: warning: stack frame size of 8344 bytes in function 'mt9t112_init_camera'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 071a0578b0ce0b0e543d1e38ee6926b9cc21c198
commit: f0fe00d4972a8cd4b98cc2c29758615e4d51cdfe security: allow using Clang's zero initialization for stack variables
date: 4 months ago
config: x86_64-randconfig-a012-20201017 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project efd02c1548ee458d59063f6393e94e972b5c3d50)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout f0fe00d4972a8cd4b98cc2c29758615e4d51cdfe
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/media/i2c/mt9t112.c:670:12: warning: stack frame size of 8344 bytes in function 'mt9t112_init_camera' [-Wframe-larger-than=]
static int mt9t112_init_camera(const struct i2c_client *client)
^
1 warning generated.
vim +/mt9t112_init_camera +670 drivers/media/i2c/mt9t112.c
7641b04421954ea Jacopo Mondi 2018-03-12 669
7641b04421954ea Jacopo Mondi 2018-03-12 @670 static int mt9t112_init_camera(const struct i2c_client *client)
7641b04421954ea Jacopo Mondi 2018-03-12 671 {
7641b04421954ea Jacopo Mondi 2018-03-12 672 int ret;
7641b04421954ea Jacopo Mondi 2018-03-12 673
7641b04421954ea Jacopo Mondi 2018-03-12 674 ECHECKER(ret, mt9t112_reset(client));
7641b04421954ea Jacopo Mondi 2018-03-12 675 ECHECKER(ret, mt9t112_init_pll(client));
7641b04421954ea Jacopo Mondi 2018-03-12 676 ECHECKER(ret, mt9t112_init_setting(client));
7641b04421954ea Jacopo Mondi 2018-03-12 677 ECHECKER(ret, mt9t112_auto_focus_setting(client));
7641b04421954ea Jacopo Mondi 2018-03-12 678
7641b04421954ea Jacopo Mondi 2018-03-12 679 mt9t112_reg_mask_set(ret, client, 0x0018, 0x0004, 0);
7641b04421954ea Jacopo Mondi 2018-03-12 680
6a26f141bf6200a Jacopo Mondi 2018-03-12 681 /* Analog setting B.*/
7641b04421954ea Jacopo Mondi 2018-03-12 682 mt9t112_reg_write(ret, client, 0x3084, 0x2409);
7641b04421954ea Jacopo Mondi 2018-03-12 683 mt9t112_reg_write(ret, client, 0x3092, 0x0A49);
7641b04421954ea Jacopo Mondi 2018-03-12 684 mt9t112_reg_write(ret, client, 0x3094, 0x4949);
7641b04421954ea Jacopo Mondi 2018-03-12 685 mt9t112_reg_write(ret, client, 0x3096, 0x4950);
7641b04421954ea Jacopo Mondi 2018-03-12 686
7641b04421954ea Jacopo Mondi 2018-03-12 687 /*
6a26f141bf6200a Jacopo Mondi 2018-03-12 688 * Disable adaptive clock.
7641b04421954ea Jacopo Mondi 2018-03-12 689 * PRI_A_CONFIG_JPEG_OB_TX_CONTROL_VAR
7641b04421954ea Jacopo Mondi 2018-03-12 690 * PRI_B_CONFIG_JPEG_OB_TX_CONTROL_VAR
7641b04421954ea Jacopo Mondi 2018-03-12 691 */
7641b04421954ea Jacopo Mondi 2018-03-12 692 mt9t112_mcu_write(ret, client, VAR(26, 160), 0x0A2E);
7641b04421954ea Jacopo Mondi 2018-03-12 693 mt9t112_mcu_write(ret, client, VAR(27, 160), 0x0A2E);
7641b04421954ea Jacopo Mondi 2018-03-12 694
6a26f141bf6200a Jacopo Mondi 2018-03-12 695 /*
6a26f141bf6200a Jacopo Mondi 2018-03-12 696 * Configure Status in Status_before_length Format and enable header.
6a26f141bf6200a Jacopo Mondi 2018-03-12 697 * PRI_B_CONFIG_JPEG_OB_TX_CONTROL_VAR
6a26f141bf6200a Jacopo Mondi 2018-03-12 698 */
7641b04421954ea Jacopo Mondi 2018-03-12 699 mt9t112_mcu_write(ret, client, VAR(27, 144), 0x0CB4);
7641b04421954ea Jacopo Mondi 2018-03-12 700
6a26f141bf6200a Jacopo Mondi 2018-03-12 701 /*
6a26f141bf6200a Jacopo Mondi 2018-03-12 702 * Enable JPEG in context B.
6a26f141bf6200a Jacopo Mondi 2018-03-12 703 * PRI_B_CONFIG_JPEG_OB_TX_CONTROL_VAR
6a26f141bf6200a Jacopo Mondi 2018-03-12 704 */
7641b04421954ea Jacopo Mondi 2018-03-12 705 mt9t112_mcu_write(ret, client, VAR8(27, 142), 0x01);
7641b04421954ea Jacopo Mondi 2018-03-12 706
6a26f141bf6200a Jacopo Mondi 2018-03-12 707 /* Disable Dac_TXLO. */
7641b04421954ea Jacopo Mondi 2018-03-12 708 mt9t112_reg_write(ret, client, 0x316C, 0x350F);
7641b04421954ea Jacopo Mondi 2018-03-12 709
6a26f141bf6200a Jacopo Mondi 2018-03-12 710 /* Set max slew rates. */
7641b04421954ea Jacopo Mondi 2018-03-12 711 mt9t112_reg_write(ret, client, 0x1E, 0x777);
7641b04421954ea Jacopo Mondi 2018-03-12 712
7641b04421954ea Jacopo Mondi 2018-03-12 713 return ret;
7641b04421954ea Jacopo Mondi 2018-03-12 714 }
7641b04421954ea Jacopo Mondi 2018-03-12 715
:::::: The code at line 670 was first introduced by commit
:::::: 7641b04421954ea092b8fa7edbf904c3852875b5 media: i2c: Copy mt9t112 soc_camera sensor driver
:::::: TO: Jacopo Mondi <jacopo+renesas(a)jmondi.org>
:::::: CC: Mauro Carvalho Chehab <mchehab(a)s-opensource.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
drivers/dma/ppc4xx/adma.c:1188:34: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 071a0578b0ce0b0e543d1e38ee6926b9cc21c198
commit: 8f28ca6bd8211214faf717677bbffe375c2a6072 iomap: constify ioreadX() iomem argument (as in generic implementation)
date: 9 weeks ago
config: powerpc-randconfig-s032-20201017 (attached as .config)
compiler: powerpc-linux-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-rc1-2-g368fd9ce-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8f28ca6bd8211214faf717677bbffe375c2a6072
# 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=powerpc
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 >>)"
drivers/dma/ppc4xx/adma.c:73:1: sparse: sparse: symbol 'ppc440spe_adma_chan_list' was not declared. Should it be static?
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:140:17: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:543:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] sg1l @@ got restricted __le32 [usertype] @@
drivers/dma/ppc4xx/adma.c:543:35: sparse: expected unsigned int [usertype] sg1l
drivers/dma/ppc4xx/adma.c:543:35: sparse: got restricted __le32 [usertype]
drivers/dma/ppc4xx/adma.c:544:35: sparse: sparse: invalid assignment: |=
drivers/dma/ppc4xx/adma.c:544:35: sparse: left side has type unsigned int
drivers/dma/ppc4xx/adma.c:544:35: sparse: right side has type restricted __le32
drivers/dma/ppc4xx/adma.c:590:23: sparse: sparse: invalid assignment: |=
drivers/dma/ppc4xx/adma.c:590:23: sparse: left side has type unsigned int
drivers/dma/ppc4xx/adma.c:590:23: sparse: right side has type restricted __le32
drivers/dma/ppc4xx/adma.c:629:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] @@ got restricted __le32 [usertype] @@
drivers/dma/ppc4xx/adma.c:629:23: sparse: expected unsigned int [usertype]
drivers/dma/ppc4xx/adma.c:629:23: sparse: got restricted __le32 [usertype]
drivers/dma/ppc4xx/adma.c:630:23: sparse: sparse: invalid assignment: |=
drivers/dma/ppc4xx/adma.c:630:23: sparse: left side has type unsigned int
drivers/dma/ppc4xx/adma.c:630:23: sparse: right side has type restricted __le32
drivers/dma/ppc4xx/adma.c:655:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] cnt @@ got restricted __le32 [usertype] @@
drivers/dma/ppc4xx/adma.c:655:34: sparse: expected unsigned int [usertype] cnt
drivers/dma/ppc4xx/adma.c:655:34: sparse: got restricted __le32 [usertype]
drivers/dma/ppc4xx/adma.c:688:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:688:38: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:688:38: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:689:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:689:38: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:689:38: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:690:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:690:38: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:690:38: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:691:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:691:39: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:691:39: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:738:69: sparse: sparse: Using plain integer as NULL pointer
drivers/dma/ppc4xx/adma.c:1187:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct dma_regs *dma_reg @@ got struct dma_regs [noderef] __iomem *dma_reg @@
drivers/dma/ppc4xx/adma.c:1187:25: sparse: expected struct dma_regs *dma_reg
drivers/dma/ppc4xx/adma.c:1187:25: sparse: got struct dma_regs [noderef] __iomem *dma_reg
>> drivers/dma/ppc4xx/adma.c:1188:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
>> drivers/dma/ppc4xx/adma.c:1188:34: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1188:34: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1190:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:1190:25: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:1190:25: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:1191:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1191:36: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1191:36: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1138:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:1138:25: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:1138:25: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:1147:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1147:35: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1147:35: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1157:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1157:49: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1157:49: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1159:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1159:38: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1159:38: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:911:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct dma_regs *dma_reg @@ got struct dma_regs [noderef] __iomem *dma_reg @@
drivers/dma/ppc4xx/adma.c:911:25: sparse: expected struct dma_regs *dma_reg
drivers/dma/ppc4xx/adma.c:911:25: sparse: got struct dma_regs [noderef] __iomem *dma_reg
drivers/dma/ppc4xx/adma.c:912:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:912:40: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:912:40: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:929:37: sparse: sparse: cast to restricted __le32
drivers/dma/ppc4xx/adma.c:974:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:974:32: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:974:32: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:979:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:979:40: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:979:40: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:984:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:984:25: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:984:25: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:985:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:985:34: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:985:34: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:986:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:986:34: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:986:34: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:993:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:993:55: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:993:55: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:995:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:995:51: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:995:51: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:997:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:997:51: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:997:51: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:999:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:999:46: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:999:46: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1008:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1008:35: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1008:35: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1027:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct dma_regs *dma_reg @@ got struct dma_regs [noderef] __iomem *dma_reg @@
drivers/dma/ppc4xx/adma.c:1027:25: sparse: expected struct dma_regs *dma_reg
drivers/dma/ppc4xx/adma.c:1027:25: sparse: got struct dma_regs [noderef] __iomem *dma_reg
>> drivers/dma/ppc4xx/adma.c:1031:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned short * @@
drivers/dma/ppc4xx/adma.c:1031:31: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1031:31: sparse: got unsigned short *
drivers/dma/ppc4xx/adma.c:1031:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned short * @@
drivers/dma/ppc4xx/adma.c:1031:60: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1031:60: sparse: got unsigned short *
drivers/dma/ppc4xx/adma.c:1032:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned short * @@
drivers/dma/ppc4xx/adma.c:1032:31: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1032:31: sparse: got unsigned short *
drivers/dma/ppc4xx/adma.c:1032:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned short * @@
drivers/dma/ppc4xx/adma.c:1032:60: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1032:60: sparse: got unsigned short *
drivers/dma/ppc4xx/adma.c:1038:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:1038:25: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:1038:25: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:1039:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1039:37: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1039:37: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1053:48: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:1053:48: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:1053:48: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:1055:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1055:25: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1055:25: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1062:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1062:41: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1062:41: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1064:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1064:39: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1064:39: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1065:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1065:25: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1065:25: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1066:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1066:33: sparse: expected void const [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1066:33: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1067:22: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1067:22: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1067:22: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1080:48: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct dma_regs *dma_reg @@ got struct dma_regs [noderef] __iomem *dma_reg @@
drivers/dma/ppc4xx/adma.c:1080:48: sparse: expected struct dma_regs *dma_reg
drivers/dma/ppc4xx/adma.c:1080:48: sparse: got struct dma_regs [noderef] __iomem *dma_reg
drivers/dma/ppc4xx/adma.c:1090:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1090:26: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1090:26: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:1210:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct xor_regs *xor_reg @@ got struct xor_regs [noderef] __iomem *xor_reg @@
drivers/dma/ppc4xx/adma.c:1210:25: sparse: expected struct xor_regs *xor_reg
drivers/dma/ppc4xx/adma.c:1210:25: sparse: got struct xor_regs [noderef] __iomem *xor_reg
drivers/dma/ppc4xx/adma.c:1214:30: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int * @@
drivers/dma/ppc4xx/adma.c:1214:30: sparse: expected void [noderef] __iomem *
drivers/dma/ppc4xx/adma.c:1214:30: sparse: got unsigned int *
drivers/dma/ppc4xx/adma.c:2777:62: sparse: sparse: Using plain integer as NULL pointer
drivers/dma/ppc4xx/adma.c:4094:14: sparse: sparse: too many warnings
vim +1188 drivers/dma/ppc4xx/adma.c
12458ea06efd7b Anatolij Gustschin 2009-12-11 1014
12458ea06efd7b Anatolij Gustschin 2009-12-11 1015 /**
12458ea06efd7b Anatolij Gustschin 2009-12-11 1016 * ppc440spe_chan_is_busy - get the channel status
12458ea06efd7b Anatolij Gustschin 2009-12-11 1017 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1018 static int ppc440spe_chan_is_busy(struct ppc440spe_adma_chan *chan)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1019 {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1020 struct dma_regs *dma_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1021 struct xor_regs *xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1022 int busy = 0;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1023
12458ea06efd7b Anatolij Gustschin 2009-12-11 1024 switch (chan->device->id) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1025 case PPC440SPE_DMA0_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1026 case PPC440SPE_DMA1_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1027 dma_reg = chan->device->dma_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1028 /* if command FIFO's head and tail pointers are equal and
12458ea06efd7b Anatolij Gustschin 2009-12-11 1029 * status tail is the same as command, then channel is free
12458ea06efd7b Anatolij Gustschin 2009-12-11 1030 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 @1031 if (ioread16(&dma_reg->cpfhp) != ioread16(&dma_reg->cpftp) ||
12458ea06efd7b Anatolij Gustschin 2009-12-11 1032 ioread16(&dma_reg->cpftp) != ioread16(&dma_reg->csftp))
12458ea06efd7b Anatolij Gustschin 2009-12-11 1033 busy = 1;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1034 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1035 case PPC440SPE_XOR_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1036 /* use the special status bit for the XORcore
12458ea06efd7b Anatolij Gustschin 2009-12-11 1037 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1038 xor_reg = chan->device->xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1039 busy = (ioread32be(&xor_reg->sr) & XOR_SR_XCP_BIT) ? 1 : 0;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1040 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1041 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1042
12458ea06efd7b Anatolij Gustschin 2009-12-11 1043 return busy;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1044 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1045
12458ea06efd7b Anatolij Gustschin 2009-12-11 1046 /**
12458ea06efd7b Anatolij Gustschin 2009-12-11 1047 * ppc440spe_chan_set_first_xor_descriptor - init XORcore chain
12458ea06efd7b Anatolij Gustschin 2009-12-11 1048 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1049 static void ppc440spe_chan_set_first_xor_descriptor(
12458ea06efd7b Anatolij Gustschin 2009-12-11 1050 struct ppc440spe_adma_chan *chan,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1051 struct ppc440spe_adma_desc_slot *next_desc)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1052 {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1053 struct xor_regs *xor_reg = chan->device->xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1054
12458ea06efd7b Anatolij Gustschin 2009-12-11 1055 if (ioread32be(&xor_reg->sr) & XOR_SR_XCP_BIT)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1056 printk(KERN_INFO "%s: Warn: XORcore is running "
12458ea06efd7b Anatolij Gustschin 2009-12-11 1057 "when try to set the first CDB!\n",
12458ea06efd7b Anatolij Gustschin 2009-12-11 1058 __func__);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1059
12458ea06efd7b Anatolij Gustschin 2009-12-11 1060 xor_last_submit = xor_last_linked = next_desc;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1061
12458ea06efd7b Anatolij Gustschin 2009-12-11 1062 iowrite32be(XOR_CRSR_64BA_BIT, &xor_reg->crsr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1063
12458ea06efd7b Anatolij Gustschin 2009-12-11 1064 iowrite32be(next_desc->phys, &xor_reg->cblalr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1065 iowrite32be(0, &xor_reg->cblahr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1066 iowrite32be(ioread32be(&xor_reg->cbcr) | XOR_CBCR_LNK_BIT,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1067 &xor_reg->cbcr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1068
12458ea06efd7b Anatolij Gustschin 2009-12-11 1069 chan->hw_chain_inited = 1;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1070 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1071
12458ea06efd7b Anatolij Gustschin 2009-12-11 1072 /**
12458ea06efd7b Anatolij Gustschin 2009-12-11 1073 * ppc440spe_dma_put_desc - put DMA0,1 descriptor to FIFO.
12458ea06efd7b Anatolij Gustschin 2009-12-11 1074 * called with irqs disabled
12458ea06efd7b Anatolij Gustschin 2009-12-11 1075 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1076 static void ppc440spe_dma_put_desc(struct ppc440spe_adma_chan *chan,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1077 struct ppc440spe_adma_desc_slot *desc)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1078 {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1079 u32 pcdb;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1080 struct dma_regs *dma_reg = chan->device->dma_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1081
12458ea06efd7b Anatolij Gustschin 2009-12-11 1082 pcdb = desc->phys;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1083 if (!test_bit(PPC440SPE_DESC_INT, &desc->flags))
12458ea06efd7b Anatolij Gustschin 2009-12-11 1084 pcdb |= DMA_CDB_NO_INT;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1085
12458ea06efd7b Anatolij Gustschin 2009-12-11 1086 chan_last_sub[chan->device->id] = desc;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1087
12458ea06efd7b Anatolij Gustschin 2009-12-11 1088 ADMA_LL_DBG(print_cb(chan, desc->hw_desc));
12458ea06efd7b Anatolij Gustschin 2009-12-11 1089
12458ea06efd7b Anatolij Gustschin 2009-12-11 1090 iowrite32(pcdb, &dma_reg->cpfpl);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1091 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1092
12458ea06efd7b Anatolij Gustschin 2009-12-11 1093 /**
12458ea06efd7b Anatolij Gustschin 2009-12-11 1094 * ppc440spe_chan_append - update the h/w chain in the channel
12458ea06efd7b Anatolij Gustschin 2009-12-11 1095 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1096 static void ppc440spe_chan_append(struct ppc440spe_adma_chan *chan)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1097 {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1098 struct xor_regs *xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1099 struct ppc440spe_adma_desc_slot *iter;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1100 struct xor_cb *xcb;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1101 u32 cur_desc;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1102 unsigned long flags;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1103
12458ea06efd7b Anatolij Gustschin 2009-12-11 1104 local_irq_save(flags);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1105
12458ea06efd7b Anatolij Gustschin 2009-12-11 1106 switch (chan->device->id) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1107 case PPC440SPE_DMA0_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1108 case PPC440SPE_DMA1_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1109 cur_desc = ppc440spe_chan_get_current_descriptor(chan);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1110
12458ea06efd7b Anatolij Gustschin 2009-12-11 1111 if (likely(cur_desc)) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1112 iter = chan_last_sub[chan->device->id];
12458ea06efd7b Anatolij Gustschin 2009-12-11 1113 BUG_ON(!iter);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1114 } else {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1115 /* first peer */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1116 iter = chan_first_cdb[chan->device->id];
12458ea06efd7b Anatolij Gustschin 2009-12-11 1117 BUG_ON(!iter);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1118 ppc440spe_dma_put_desc(chan, iter);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1119 chan->hw_chain_inited = 1;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1120 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1121
12458ea06efd7b Anatolij Gustschin 2009-12-11 1122 /* is there something new to append */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1123 if (!iter->hw_next)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1124 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1125
12458ea06efd7b Anatolij Gustschin 2009-12-11 1126 /* flush descriptors from the s/w queue to fifo */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1127 list_for_each_entry_continue(iter, &chan->chain, chain_node) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1128 ppc440spe_dma_put_desc(chan, iter);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1129 if (!iter->hw_next)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1130 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1131 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1132 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1133 case PPC440SPE_XOR_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1134 /* update h/w links and refetch */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1135 if (!xor_last_submit->hw_next)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1136 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1137
12458ea06efd7b Anatolij Gustschin 2009-12-11 1138 xor_reg = chan->device->xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1139 /* the last linked CDB has to generate an interrupt
12458ea06efd7b Anatolij Gustschin 2009-12-11 1140 * that we'd be able to append the next lists to h/w
12458ea06efd7b Anatolij Gustschin 2009-12-11 1141 * regardless of the XOR engine state at the moment of
12458ea06efd7b Anatolij Gustschin 2009-12-11 1142 * appending of these next lists
12458ea06efd7b Anatolij Gustschin 2009-12-11 1143 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1144 xcb = xor_last_linked->hw_desc;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1145 xcb->cbc |= XOR_CBCR_CBCE_BIT;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1146
12458ea06efd7b Anatolij Gustschin 2009-12-11 1147 if (!(ioread32be(&xor_reg->sr) & XOR_SR_XCP_BIT)) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1148 /* XORcore is idle. Refetch now */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1149 do_xor_refetch = 0;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1150 ppc440spe_xor_set_link(xor_last_submit,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1151 xor_last_submit->hw_next);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1152
12458ea06efd7b Anatolij Gustschin 2009-12-11 1153 ADMA_LL_DBG(print_cb_list(chan,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1154 xor_last_submit->hw_next));
12458ea06efd7b Anatolij Gustschin 2009-12-11 1155
12458ea06efd7b Anatolij Gustschin 2009-12-11 1156 xor_last_submit = xor_last_linked;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1157 iowrite32be(ioread32be(&xor_reg->crsr) |
12458ea06efd7b Anatolij Gustschin 2009-12-11 1158 XOR_CRSR_RCBE_BIT | XOR_CRSR_64BA_BIT,
12458ea06efd7b Anatolij Gustschin 2009-12-11 1159 &xor_reg->crsr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1160 } else {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1161 /* XORcore is running. Refetch later in the handler */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1162 do_xor_refetch = 1;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1163 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1164
12458ea06efd7b Anatolij Gustschin 2009-12-11 1165 break;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1166 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1167
12458ea06efd7b Anatolij Gustschin 2009-12-11 1168 local_irq_restore(flags);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1169 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1170
12458ea06efd7b Anatolij Gustschin 2009-12-11 1171 /**
12458ea06efd7b Anatolij Gustschin 2009-12-11 1172 * ppc440spe_chan_get_current_descriptor - get the currently executed descriptor
12458ea06efd7b Anatolij Gustschin 2009-12-11 1173 */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1174 static u32
12458ea06efd7b Anatolij Gustschin 2009-12-11 1175 ppc440spe_chan_get_current_descriptor(struct ppc440spe_adma_chan *chan)
12458ea06efd7b Anatolij Gustschin 2009-12-11 1176 {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1177 struct dma_regs *dma_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1178 struct xor_regs *xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1179
12458ea06efd7b Anatolij Gustschin 2009-12-11 1180 if (unlikely(!chan->hw_chain_inited))
12458ea06efd7b Anatolij Gustschin 2009-12-11 1181 /* h/w descriptor chain is not initialized yet */
12458ea06efd7b Anatolij Gustschin 2009-12-11 1182 return 0;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1183
12458ea06efd7b Anatolij Gustschin 2009-12-11 1184 switch (chan->device->id) {
12458ea06efd7b Anatolij Gustschin 2009-12-11 1185 case PPC440SPE_DMA0_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1186 case PPC440SPE_DMA1_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1187 dma_reg = chan->device->dma_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 @1188 return ioread32(&dma_reg->acpl) & (~DMA_CDB_MSK);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1189 case PPC440SPE_XOR_ID:
12458ea06efd7b Anatolij Gustschin 2009-12-11 1190 xor_reg = chan->device->xor_reg;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1191 return ioread32be(&xor_reg->ccbalr);
12458ea06efd7b Anatolij Gustschin 2009-12-11 1192 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1193 return 0;
12458ea06efd7b Anatolij Gustschin 2009-12-11 1194 }
12458ea06efd7b Anatolij Gustschin 2009-12-11 1195
:::::: The code at line 1188 was first introduced by commit
:::::: 12458ea06efd7b44281e68fe59c950ec7d59c649 ppc440spe-adma: adds updated ppc440spe adma driver
:::::: TO: Anatolij Gustschin <agust(a)denx.de>
:::::: CC: Dan Williams <dan.j.williams(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
Re: [patch 4/4] media: cx231xx: Consolidate dmesg output
by kernel test robot
Hi Thomas,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on linus/master linux/master v5.9 next-20201016]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Thomas-Gleixner/media-Cleanup-in...
base: git://linuxtv.org/media_tree.git master
config: x86_64-randconfig-a016-20201017 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project efd02c1548ee458d59063f6393e94e972b5c3d50)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/703daca167ddea5ab71b9547b549c1c14...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Thomas-Gleixner/media-Cleanup-in_interrupt-usage/20201013-224011
git checkout 703daca167ddea5ab71b9547b549c1c1499f2bf4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/media/usb/cx231xx/cx231xx-vbi.c:411:57: warning: more '%' conversions than data arguments [-Wformat-insufficient-args]
"unable to allocate %i bytes for transfer buffer %i%s\n",
~^
include/linux/dev_printk.h:104:24: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~
include/linux/dev_printk.h:19:22: note: expanded from macro 'dev_fmt'
#define dev_fmt(fmt) fmt
^~~
1 warning generated.
vim +411 drivers/media/usb/cx231xx/cx231xx-vbi.c
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 336
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 337 /*
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 338 * Allocate URBs and start IRQ
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 339 */
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 340 int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 341 int num_bufs, int max_pkt_size,
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 342 int (*bulk_copy) (struct cx231xx *dev,
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 343 struct urb *urb))
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 344 {
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 345 struct cx231xx_dmaqueue *dma_q = &dev->vbi_mode.vidq;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 346 int i;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 347 int sb_size, pipe;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 348 struct urb *urb;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 349 int rc;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 350
336fea922936c1 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-03 351 dev_dbg(dev->dev, "called cx231xx_vbi_isoc\n");
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 352
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 353 /* De-allocates all pending stuff */
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 354 cx231xx_uninit_vbi_isoc(dev);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 355
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 356 /* clear if any halt */
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 357 usb_clear_halt(dev->udev,
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 358 usb_rcvbulkpipe(dev->udev,
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 359 dev->vbi_mode.end_point_addr));
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 360
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 361 dev->vbi_mode.bulk_ctl.bulk_copy = bulk_copy;
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 362 dev->vbi_mode.bulk_ctl.num_bufs = num_bufs;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 363 dma_q->pos = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 364 dma_q->is_partial_line = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 365 dma_q->last_sav = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 366 dma_q->current_field = -1;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 367 dma_q->bytes_left_in_line = dev->width << 1;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 368 dma_q->lines_per_field = ((dev->norm & V4L2_STD_625_50) ?
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 369 PAL_VBI_LINES : NTSC_VBI_LINES);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 370 dma_q->lines_completed = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 371 for (i = 0; i < 8; i++)
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 372 dma_q->partial_buf[i] = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 373
6396bb221514d2 drivers/media/usb/cx231xx/cx231xx-vbi.c Kees Cook 2018-06-12 374 dev->vbi_mode.bulk_ctl.urb = kcalloc(num_bufs, sizeof(void *),
cde4362f0244a7 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 375 GFP_KERNEL);
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 376 if (!dev->vbi_mode.bulk_ctl.urb) {
336fea922936c1 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-03 377 dev_err(dev->dev,
b7085c08647598 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-02 378 "cannot alloc memory for usb buffers\n");
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 379 return -ENOMEM;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 380 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 381
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 382 dev->vbi_mode.bulk_ctl.transfer_buffer =
6396bb221514d2 drivers/media/usb/cx231xx/cx231xx-vbi.c Kees Cook 2018-06-12 383 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 384 if (!dev->vbi_mode.bulk_ctl.transfer_buffer) {
336fea922936c1 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-03 385 dev_err(dev->dev,
b7085c08647598 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-02 386 "cannot allocate memory for usbtransfer\n");
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 387 kfree(dev->vbi_mode.bulk_ctl.urb);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 388 return -ENOMEM;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 389 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 390
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 391 dev->vbi_mode.bulk_ctl.max_pkt_size = max_pkt_size;
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 392 dev->vbi_mode.bulk_ctl.buf = NULL;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 393
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 394 sb_size = max_packets * dev->vbi_mode.bulk_ctl.max_pkt_size;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 395
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 396 /* allocate urbs and transfer buffers */
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 397 for (i = 0; i < dev->vbi_mode.bulk_ctl.num_bufs; i++) {
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 398
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 399 urb = usb_alloc_urb(0, GFP_KERNEL);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 400 if (!urb) {
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 401 cx231xx_uninit_vbi_isoc(dev);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 402 return -ENOMEM;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 403 }
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 404 dev->vbi_mode.bulk_ctl.urb[i] = urb;
cd5534be6bc681 drivers/media/video/cx231xx/cx231xx-vbi.c David Dillow 2012-06-18 405 urb->transfer_flags = 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 406
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 407 dev->vbi_mode.bulk_ctl.transfer_buffer[i] =
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 408 kzalloc(sb_size, GFP_KERNEL);
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 409 if (!dev->vbi_mode.bulk_ctl.transfer_buffer[i]) {
336fea922936c1 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-03 410 dev_err(dev->dev,
b7085c08647598 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-02 @411 "unable to allocate %i bytes for transfer buffer %i%s\n",
703daca167ddea drivers/media/usb/cx231xx/cx231xx-vbi.c Thomas Gleixner 2020-10-13 412 sb_size, i);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 413 cx231xx_uninit_vbi_isoc(dev);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 414 return -ENOMEM;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 415 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 416
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 417 pipe = usb_rcvbulkpipe(dev->udev, dev->vbi_mode.end_point_addr);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 418 usb_fill_bulk_urb(urb, dev->udev, pipe,
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 419 dev->vbi_mode.bulk_ctl.transfer_buffer[i],
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 420 sb_size, cx231xx_irq_vbi_callback, dma_q);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 421 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 422
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 423 init_waitqueue_head(&dma_q->wq);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 424
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 425 /* submit urbs and enables IRQ */
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 426 for (i = 0; i < dev->vbi_mode.bulk_ctl.num_bufs; i++) {
64fbf444552606 drivers/media/video/cx231xx/cx231xx-vbi.c Palash Bandyopadhyay 2010-07-06 427 rc = usb_submit_urb(dev->vbi_mode.bulk_ctl.urb[i], GFP_ATOMIC);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 428 if (rc) {
336fea922936c1 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-03 429 dev_err(dev->dev,
b7085c08647598 drivers/media/usb/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2014-11-02 430 "submit of urb %i failed (error=%i)\n", i, rc);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 431 cx231xx_uninit_vbi_isoc(dev);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 432 return rc;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 433 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 434 }
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 435
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 436 cx231xx_capture_start(dev, 1, Vbi);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 437
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 438 return 0;
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 439 }
84b5dbf39ed2f5 drivers/media/video/cx231xx/cx231xx-vbi.c Mauro Carvalho Chehab 2009-03-03 440 EXPORT_SYMBOL_GPL(cx231xx_init_vbi_isoc);
e0d3bafd02586c drivers/media/video/cx231xx/cx231xx-vbi.c Sri Deevi 2009-03-03 441
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
Re: [PATCH 3/8] ext4: use do_div() to calculate block offset
by kernel test robot
Hi Chunguang,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on v5.9]
[also build test ERROR on next-20201016]
[cannot apply to ext4/dev tytso-fscrypt/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Chunguang-Xu/ext4-use-ASSERT-to-...
base: bbf5c979011a099af5dc76498918ed7df445635b
config: arm-cerfcube_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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/0day-ci/linux/commit/1bcce45cce439ec86a89aa8cfc895b5e9...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chunguang-Xu/ext4-use-ASSERT-to-replace-J_ASSERT/20201016-115723
git checkout 1bcce45cce439ec86a89aa8cfc895b5e9ad5046b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/math64.h:7,
from include/linux/time.h:6,
from fs/ext4/balloc.c:15:
fs/ext4/balloc.c: In function 'ext4_get_group_desc':
>> arch/arm/include/asm/div64.h:60:36: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
60 | #define do_div(n, base) __div64_32(&(n), base)
| ^~~~
| |
| unsigned int *
fs/ext4/balloc.c:282:11: note: in expansion of macro 'do_div'
282 | offset = do_div(group_desc, EXT4_DESC_PER_BLOCK(sb));
| ^~~~~~
arch/arm/include/asm/div64.h:33:45: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'unsigned int *'
33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
| ~~~~~~~~~~^
cc1: some warnings being treated as errors
vim +/__div64_32 +60 arch/arm/include/asm/div64.h
fa4adc614922c24 include/asm-arm/div64.h Nicolas Pitre 2006-12-06 53
fa4adc614922c24 include/asm-arm/div64.h Nicolas Pitre 2006-12-06 54 /*
040b323b5012b55 arch/arm/include/asm/div64.h Nicolas Pitre 2015-11-02 55 * In OABI configurations, some uses of the do_div function
040b323b5012b55 arch/arm/include/asm/div64.h Nicolas Pitre 2015-11-02 56 * cause gcc to run out of registers. To work around that,
040b323b5012b55 arch/arm/include/asm/div64.h Nicolas Pitre 2015-11-02 57 * we can force the use of the out-of-line version for
040b323b5012b55 arch/arm/include/asm/div64.h Nicolas Pitre 2015-11-02 58 * configurations that build a OABI kernel.
fa4adc614922c24 include/asm-arm/div64.h Nicolas Pitre 2006-12-06 59 */
040b323b5012b55 arch/arm/include/asm/div64.h Nicolas Pitre 2015-11-02 @60 #define do_div(n, base) __div64_32(&(n), base)
fa4adc614922c24 include/asm-arm/div64.h Nicolas Pitre 2006-12-06 61
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
Re: [PATCH v9 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
by kernel test robot
Hi Konstantin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.9 next-20201016]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-wri...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9ff9b0d392ea08090cd1780fb196f36dbb586529
config: x86_64-randconfig-a011-20201017 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project efd02c1548ee458d59063f6393e94e972b5c3d50)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/3339f0d0890cfe6ed760dc24916de15e7...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201016-233309
git checkout 3339f0d0890cfe6ed760dc24916de15e74c4f67d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/ntfs3/attrib.c:1256:7: warning: variable 'hint' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized]
if (vcn + clst_data &&
^~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1263:11: note: uninitialized use occurs here
hint + 1, len - clst_data, NULL, 0,
^~~~
fs/ntfs3/attrib.c:1256:7: note: remove the '&&' if its condition is always true
if (vcn + clst_data &&
^~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1254:18: note: initialize the variable 'hint' to silence this warning
CLST alen, hint;
^
= 0
fs/ntfs3/attrib.c:72:20: warning: unused function 'attr_must_be_resident' [-Wunused-function]
static inline bool attr_must_be_resident(struct ntfs_sb_info *sbi,
^
2 warnings generated.
vim +1256 fs/ntfs3/attrib.c
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1171
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1172 /*
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1173 * attr_allocate_frame
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1174 *
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1175 * allocate/free clusters for 'frame'
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1176 */
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1177 int attr_allocate_frame(struct ntfs_inode *ni, CLST frame, size_t compr_size,
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1178 u64 new_valid)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1179 {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1180 int err = 0;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1181 struct runs_tree *run = &ni->file.run;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1182 struct ntfs_sb_info *sbi = ni->mi.sbi;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1183 struct ATTRIB *attr, *attr_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1184 struct ATTR_LIST_ENTRY *le, *le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1185 struct mft_inode *mi, *mi_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1186 CLST svcn, evcn1, next_evcn1, next_svcn, lcn, len;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1187 CLST vcn, end, clst_data;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1188 u64 total_size, valid_size, data_size;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1189 bool is_compr;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1190
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1191 le_b = NULL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1192 attr_b = ni_find_attr(ni, NULL, &le_b, ATTR_DATA, NULL, 0, NULL, &mi_b);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1193 if (!attr_b)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1194 return -ENOENT;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1195
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1196 if (!is_attr_ext(attr_b))
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1197 return -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1198
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1199 vcn = frame << NTFS_LZNT_CUNIT;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1200 end = vcn + (1u << NTFS_LZNT_CUNIT);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1201 total_size = le64_to_cpu(attr_b->nres.total_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1202
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1203 svcn = le64_to_cpu(attr_b->nres.svcn);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1204 evcn1 = le64_to_cpu(attr_b->nres.evcn) + 1;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1205 data_size = le64_to_cpu(attr_b->nres.data_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1206
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1207 if (svcn <= vcn && vcn < evcn1) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1208 attr = attr_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1209 le = le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1210 mi = mi_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1211 } else if (!le_b) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1212 err = -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1213 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1214 } else {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1215 le = le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1216 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn,
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1217 &mi);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1218 if (!attr) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1219 err = -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1220 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1221 }
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1222 svcn = le64_to_cpu(attr->nres.svcn);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1223 evcn1 = le64_to_cpu(attr->nres.evcn) + 1;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1224 }
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1225
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1226 err = attr_load_runs(attr, ni, run, NULL);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1227 if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1228 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1229
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1230 err = attr_is_frame_compressed(ni, attr_b, frame, &clst_data,
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1231 &is_compr);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1232 if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1233 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1234
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1235 total_size -= (u64)clst_data << sbi->cluster_bits;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1236
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1237 len = bytes_to_cluster(sbi, compr_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1238
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1239 if (len == clst_data)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1240 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1241
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1242 if (len < clst_data) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1243 err = run_deallocate_ex(sbi, run, vcn + len, clst_data - len,
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1244 NULL, true);
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1245 if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1246 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1247
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1248 if (!run_add_entry(run, vcn + len, SPARSE_LCN,
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1249 clst_data - len)) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1250 err = -ENOMEM;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1251 goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1252 }
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1253 } else {
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1254 CLST alen, hint;
dc58d89d2835db2 Konstantin Komarov 2020-10-16 1255 /* Get the last lcn to allocate from */
dc58d89d2835db2 Konstantin Komarov 2020-10-16 @1256 if (vcn + clst_data &&
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:932:2: warning: 'strncpy' specified bound 128 equals destination size
by kernel test robot
Hi Jacopo,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8119c4332d253660e0a6b8748fe0749961cfbc97
commit: b18ee53ad297264a79cf4ea566663f20786b6455 staging: bcm2835: Break MMAL support out from camera
date: 4 months ago
config: nds32-randconfig-r026-20201017 (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.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/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b18ee53ad297264a79cf4ea566663f20786b6455
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nds32
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:11,
from drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:19:
include/linux/dma-mapping.h: In function 'dma_map_resource':
arch/nds32/include/asm/memory.h:82:32: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
82 | #define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
| ^~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/linux/dma-mapping.h:352:2: note: in expansion of macro 'if'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~
include/linux/dma-mapping.h:352:6: note: in expansion of macro 'WARN_ON_ONCE'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~~~~
include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
arch/nds32/include/asm/memory.h:82:32: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
82 | #define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
| ^~
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/linux/dma-mapping.h:352:2: note: in expansion of macro 'if'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~
include/linux/dma-mapping.h:352:6: note: in expansion of macro 'WARN_ON_ONCE'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~~~~
include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
arch/nds32/include/asm/memory.h:82:32: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
82 | #define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
| ^~
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
69 | (cond) ? \
| ^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
56 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:352:2: note: in expansion of macro 'if'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~
include/linux/dma-mapping.h:352:6: note: in expansion of macro 'WARN_ON_ONCE'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~~~~
include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c: In function 'create_component':
>> drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:932:2: warning: 'strncpy' specified bound 128 equals destination size [-Wstringop-truncation]
932 | strncpy(m.u.component_create.name, name,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
933 | sizeof(m.u.component_create.name));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/strncpy +932 drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 918
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 919 /* create comonent on vc */
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 920 static int create_component(struct vchiq_mmal_instance *instance,
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 921 struct vchiq_mmal_component *component,
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 922 const char *name)
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 923 {
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 924 int ret;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 925 struct mmal_msg m;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 926 struct mmal_msg *rmsg;
9d4d3ac473912a2 drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c Dominic Braun 2018-12-14 927 struct vchi_held_msg rmsg_handle;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 928
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 929 /* build component create message */
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 930 m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE;
4fe08093094e5f6 drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c Michael Zoran 2017-03-09 931 m.u.component_create.client_component = (u32)(unsigned long)component;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 @932 strncpy(m.u.component_create.name, name,
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 933 sizeof(m.u.component_create.name));
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 934
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 935 ret = send_synchronous_mmal_msg(instance, &m,
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 936 sizeof(m.u.component_create),
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 937 &rmsg, &rmsg_handle);
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 938 if (ret)
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 939 return ret;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 940
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 941 if (rmsg->h.type != m.h.type) {
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 942 /* got an unexpected message type in reply */
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 943 ret = -EINVAL;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 944 goto release_msg;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 945 }
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 946
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 947 ret = -rmsg->u.component_create_reply.status;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 948 if (ret != MMAL_MSG_STATUS_SUCCESS)
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 949 goto release_msg;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 950
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 951 /* a valid component response received */
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 952 component->handle = rmsg->u.component_create_reply.component_handle;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 953 component->inputs = rmsg->u.component_create_reply.input_num;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 954 component->outputs = rmsg->u.component_create_reply.output_num;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 955 component->clocks = rmsg->u.component_create_reply.clock_num;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 956
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 957 pr_debug("Component handle:0x%x in:%d out:%d clock:%d\n",
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 958 component->handle,
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 959 component->inputs, component->outputs, component->clocks);
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 960
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 961 release_msg:
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 962 vchi_held_msg_release(&rmsg_handle);
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 963
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 964 return ret;
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 965 }
7b3ad5abf027b76 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 966
:::::: The code at line 932 was first introduced by commit
:::::: 7b3ad5abf027b7643b38c4006d7f4ce47a86dd3a staging: Import the BCM2835 MMAL-based V4L2 camera driver.
:::::: TO: Eric Anholt <eric(a)anholt.net>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months