Hi Ranjan,
First bad commit (maybe != root cause):
tree:
https://github.com/intel/linux-intel-lts.git 5.10/preempt-rt
head: 2aa7b06beff50959f21350fba872ba5b71380f11
commit: a31b0999302eab96320ef33799d98da09b917a37 [11/15] Merge tag
'lts-v5.10.78-yocto-211124T221321Z' into test-rt
config: i386-randconfig-s002-20211214
(
https://download.01.org/0day-ci/archive/20211216/202112161100.2frQUouB-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
#
https://github.com/intel/linux-intel-lts/commit/a31b0999302eab96320ef3379...
git remote add intel-lts
https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.10/preempt-rt
git checkout a31b0999302eab96320ef33799d98da09b917a37
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir
ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/i915/
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/gpu/drm/i915/gem/i915_gem_execbuffer.c:608:21: sparse:
sparse: Using plain integer as NULL pointer
--
drivers/gpu/drm/i915/gem/i915_gem_context.c: note: in included file (through
drivers/gpu/drm/i915/gt/intel_gt_requests.h,
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c):
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h:406:9: sparse: sparse: preprocessor
token offsetof redefined
drivers/gpu/drm/i915/gem/i915_gem_context.c: note: in included file (through
include/uapi/linux/posix_types.h, include/uapi/linux/types.h, include/linux/types.h,
...):
include/linux/stddef.h:17:9: sparse: this was the original definition
> drivers/gpu/drm/i915/gem/i915_gem_context.c:1411:26: sparse:
sparse: incorrect type in argument 1 (different address spaces) @@ expected struct
i915_gem_engines *e @@ got struct i915_gem_engines [noderef] __rcu *engines @@
drivers/gpu/drm/i915/gem/i915_gem_context.c:1411:26: sparse: expected struct
i915_gem_engines *e
drivers/gpu/drm/i915/gem/i915_gem_context.c:1411:26: sparse: got struct
i915_gem_engines [noderef] __rcu *engines
drivers/gpu/drm/i915/gem/i915_gem_context.c:1626:34: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected struct i915_address_space *vm @@
got struct i915_address_space [noderef] __rcu *vm @@
drivers/gpu/drm/i915/gem/i915_gem_context.c:1626:34: sparse: expected struct
i915_address_space *vm
drivers/gpu/drm/i915/gem/i915_gem_context.c:1626:34: sparse: got struct
i915_address_space [noderef] __rcu *vm
drivers/gpu/drm/i915/gem/i915_gem_context.c: note: in included file:
drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse: sparse: incorrect type
in assignment (different address spaces) @@ expected struct i915_address_space
[noderef] __rcu *vm @@ got struct i915_address_space * @@
drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse: expected struct
i915_address_space [noderef] __rcu *vm
drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse: got struct
i915_address_space *
drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse: sparse: incorrect type
in argument 1 (different address spaces) @@ expected struct i915_address_space *vm @@
got struct i915_address_space [noderef] __rcu *vm @@
drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse: expected struct
i915_address_space *vm
drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse: got struct
i915_address_space [noderef] __rcu *vm
--
drivers/gpu/drm/i915/gt/iov/intel_iov.c: note: in included file:
>
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:541:13: sparse: sparse:
incorrect type in assignment (different address spaces) @@ expected void *gsm @@
got void [noderef] __iomem * @@
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:541:13: sparse:
expected void *gsm
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:541:13: sparse:
got void [noderef] __iomem *
>
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:591:13: sparse: sparse:
incorrect type in assignment (different address spaces) @@ expected unsigned long long
[noderef] [usertype] __iomem *gsm @@ got void * @@
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:591:13: sparse:
expected unsigned long long [noderef] [usertype] __iomem *gsm
drivers/gpu/drm/i915/gt/iov/./selftests/iov_live_selftest_ggtt.c:591:13: sparse:
got void *
vim +608 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
548
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
549 static int
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
550 eb_add_vma(struct i915_execbuffer *eb,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
551 unsigned int *current_batch,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
552 unsigned int i,
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
553 struct i915_vma *vma)
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
554 {
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
555 struct drm_i915_private *i915 = eb->i915;
c7c6e46f913bb3a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-08-16
556 struct drm_i915_gem_exec_object2 *entry = &eb->exec[i];
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
557 struct eb_vma *ev = &eb->vma[i];
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
558
93159e12353c2a4 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-23
559 ev->vma = vma;
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
560 ev->exec = entry;
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
561 ev->flags = entry->flags;
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
562
4d470f7359c4bf2 drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-29
563 if (eb->lut_size > 0) {
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
564 ev->handle = entry->handle;
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
565 hlist_add_head(&ev->node,
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
566 &eb->buckets[hash_32(entry->handle,
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
567 eb->lut_size)]);
4ff4b44cbb70c26 drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
568 }
59bfa1248e22d65 drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2016-08-04
569
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
570 if (entry->relocation_count)
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
571 list_add_tail(&ev->reloc_link, &eb->relocs);
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
572
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
573 /*
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
574 * SNA is doing fancy tricks with compressing batch buffers, which leads
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
575 * to negative relocation deltas. Usually that works out ok since the
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
576 * relocate address is still positive, except when the batch is placed
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
577 * very low in the GTT. Ensure this doesn't happen.
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
578 *
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
579 * Note that actual hangs have only been observed on gen7, but for
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
580 * paranoia do it everywhere.
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
581 */
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
582 if (is_batch_buffer(eb, i)) {
827db9d8bb4a013 drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-21
583 if (entry->relocation_count &&
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
584 !(ev->flags & EXEC_OBJECT_PINNED))
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
585 ev->flags |= __EXEC_OBJECT_NEEDS_BIAS;
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
586 if (eb->reloc_cache.has_fence)
7d6236bb13352c2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Chris Wilson 2020-03-03
587 ev->flags |= EXEC_OBJECT_NEEDS_FENCE;
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
588
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
589 eb->batches[*current_batch] = ev;
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
590
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
591 if (unlikely(ev->flags & EXEC_OBJECT_WRITE)) {
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
592 drm_dbg(&i915->drm,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
593 "Attempting to use self-modifying batch buffer\n");
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
594 return -EINVAL;
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
595 }
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
596
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
597 if (range_overflows_t(u64,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
598 eb->batch_start_offset,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
599 eb->args->batch_len,
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
600 ev->vma->size)) {
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
601 drm_dbg(&i915->drm, "Attempting to use out-of-bounds batch\n");
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
602 return -EINVAL;
746c8f143afad7a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2018-06-10
603 }
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
604
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
605 if (eb->args->batch_len == 0)
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
606 eb->batch_len[*current_batch] = ev->vma->size -
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
607 eb->batch_start_offset;
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
@608 if (unlikely(eb->batch_len == 0)) { /* impossible! */
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
609 drm_dbg(&i915->drm, "Invalid batch length\n");
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
610 return -EINVAL;
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
611 }
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
612
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
613 ++*current_batch;
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
614 }
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
615
95eed6488ef2ab6 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c Matthew Brost 2021-08-20
616 return 0;
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
617 }
2889caa9232109a drivers/gpu/drm/i915/i915_gem_execbuffer.c Chris Wilson 2017-06-16
618
:::::: The code at line 608 was first introduced by commit
:::::: 95eed6488ef2ab6d7947630f596a1764cbfa31bc drm/i915: Multi-BB execbuf
:::::: TO: Matthew Brost <matthew.brost(a)intel.com>
:::::: CC: nanli2x <nanx.li(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org