tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
commit: 5498506d0e0efe4adeff0b2b742bd546fcacab88 [4324/4407] Merge remote-tracking branch
'drm-misc/for-linux-next'
config: x86_64-randconfig-a004-20210118 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
22b68440e1647e16b5ee24b924986207173c02d1)
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/next/linux-next.git/commi...
git remote add linux-next
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 5498506d0e0efe4adeff0b2b742bd546fcacab88
# 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/gpu/drm/vmwgfx/vmwgfx_cmd.c:280: warning: wrong
kernel-doc identifier on line:
* Reserve @bytes number of bytes in the fifo.
> drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:504: warning: expecting
prototype for vmw_fifo_commit_flush(). Prototype was for vmw_cmd_commit_flush() instead
> drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:519: warning: expecting prototype for
vmw_fifo_flush(). Prototype was for vmw_cmd_flush() instead
> drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:678: warning: expecting prototype for
vmw_fifo_emit_dummy_gb_query(). Prototype was for vmw_cmd_emit_dummy_query() instead
vim +280 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 278
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 279
/**
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 @280
* Reserve @bytes number of bytes in the fifo.
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 281
*
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 282
* This function will return NULL (error) on two conditions:
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 283
* If it timeouts waiting for fifo space, or if @bytes is larger than the
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 284
* available fifo space.
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 285
*
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 286
* Returns:
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 287
* Pointer to the fifo, or null on error (possible hardware hang).
de12d44fcad409e1 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2011-10-04 288
*/
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 289
static void *vmw_local_fifo_reserve(struct vmw_private *dev_priv,
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 290
uint32_t bytes)
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 291
{
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 292
struct vmw_fifo_state *fifo_state = &dev_priv->fifo;
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 293
u32 *fifo_mem = dev_priv->fifo_mem;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 294
uint32_t max;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 295
uint32_t min;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 296
uint32_t next_cmd;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 297
uint32_t reserveable = fifo_state->capabilities & SVGA_FIFO_CAP_RESERVE;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 298
int ret;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 299
85b9e4878f3b1699 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2010-02-08 300
mutex_lock(&fifo_state->fifo_mutex);
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 301
max = vmw_fifo_mem_read(dev_priv, SVGA_FIFO_MAX);
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 302
min = vmw_fifo_mem_read(dev_priv, SVGA_FIFO_MIN);
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 303
next_cmd = vmw_fifo_mem_read(dev_priv, SVGA_FIFO_NEXT_CMD);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 304
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 305
if (unlikely(bytes >= (max - min)))
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 306
goto out_err;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 307
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 308
BUG_ON(fifo_state->reserved_size != 0);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 309
BUG_ON(fifo_state->dynamic_buffer != NULL);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 310
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 311
fifo_state->reserved_size = bytes;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 312
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 313
while (1) {
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 314
uint32_t stop = vmw_fifo_mem_read(dev_priv, SVGA_FIFO_STOP);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 315
bool need_bounce = false;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 316
bool reserve_in_place = false;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 317
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 318
if (next_cmd >= stop) {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 319
if (likely((next_cmd + bytes < max ||
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 320
(next_cmd + bytes == max && stop > min))))
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 321
reserve_in_place = true;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 322
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 323
else if (vmw_fifo_is_full(dev_priv, bytes)) {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 324
ret = vmw_fifo_wait(dev_priv, bytes,
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 325
false, 3 * HZ);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 326
if (unlikely(ret != 0))
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 327
goto out_err;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 328
} else
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 329
need_bounce = true;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 330
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 331
} else {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 332
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 333
if (likely((next_cmd + bytes < stop)))
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 334
reserve_in_place = true;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 335
else {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 336
ret = vmw_fifo_wait(dev_priv, bytes,
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 337
false, 3 * HZ);
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 338
if (unlikely(ret != 0))
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 339
goto out_err;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 340
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 341
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 342
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 343
if (reserve_in_place) {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 344
if (reserveable || bytes <= sizeof(uint32_t)) {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 345
fifo_state->using_bounce_buffer = false;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 346
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 347
if (reserveable)
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 348
vmw_fifo_mem_write(dev_priv,
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 349
SVGA_FIFO_RESERVED,
be4f77ac68843fc3 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Zack Rusin 2020-11-04 350
bytes);
b9eb1a6174e58eb8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 351
return (void __force *) (fifo_mem +
b9eb1a6174e58eb8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 352
(next_cmd >> 2));
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 353
} else {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 354
need_bounce = true;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 355
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 356
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 357
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 358
if (need_bounce) {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 359
fifo_state->using_bounce_buffer = true;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 360
if (bytes < fifo_state->static_buffer_size)
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 361
return fifo_state->static_buffer;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 362
else {
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 363
fifo_state->dynamic_buffer = vmalloc(bytes);
f0c62e9878024300 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Dan Carpenter 2017-04-27 364
if (!fifo_state->dynamic_buffer)
f0c62e9878024300 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Dan Carpenter 2017-04-27 365
goto out_err;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 366
return fifo_state->dynamic_buffer;
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 367
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 368
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 369
}
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 370
out_err:
fb1d9738ca053ea8 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 371
fifo_state->reserved_size = 0;
85b9e4878f3b1699 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2010-02-08 372
mutex_unlock(&fifo_state->fifo_mutex);
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 373
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 374
return NULL;
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 375
}
3eab3d9eef650419 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 376
:::::: The code at line 280 was first introduced by commit
:::::: de12d44fcad409e1b2956ef0ffd48818423fc701 vmwgfx: Document vmw_fifo_reserve
:::::: TO: Jakob Bornecrantz <jakob(a)vmware.com>
:::::: CC: Dave Airlie <airlied(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org