1. 06 4月, 2022 1 次提交
  2. 05 4月, 2022 1 次提交
  3. 03 4月, 2022 2 次提交
  4. 01 4月, 2022 1 次提交
  5. 24 3月, 2022 2 次提交
  6. 08 2月, 2022 5 次提交
  7. 01 2月, 2022 2 次提交
  8. 19 1月, 2022 1 次提交
  9. 18 1月, 2022 1 次提交
  10. 13 1月, 2022 1 次提交
  11. 28 12月, 2021 1 次提交
  12. 01 12月, 2021 1 次提交
  13. 30 11月, 2021 2 次提交
  14. 11 11月, 2021 1 次提交
  15. 04 11月, 2021 1 次提交
  16. 29 10月, 2021 1 次提交
  17. 28 10月, 2021 1 次提交
  18. 26 10月, 2021 1 次提交
    • A
      dma-buf: st: fix error handling in test_get_fences() · 55d5e4f9
      Arnd Bergmann 提交于
      The new driver incorrectly unwinds after errors, as clang points out:
      
      drivers/dma-buf/st-dma-resv.c:295:7: error: variable 'i' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
                      if (r) {
                          ^
      drivers/dma-buf/st-dma-resv.c:336:9: note: uninitialized use occurs here
              while (i--)
                     ^
      drivers/dma-buf/st-dma-resv.c:295:3: note: remove the 'if' if its condition is always false
                      if (r) {
                      ^~~~~~~~
      drivers/dma-buf/st-dma-resv.c:288:6: error: variable 'i' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
              if (r) {
                  ^
      drivers/dma-buf/st-dma-resv.c:336:9: note: uninitialized use occurs here
              while (i--)
                     ^
      drivers/dma-buf/st-dma-resv.c:288:2: note: remove the 'if' if its condition is always false
              if (r) {
              ^~~~~~~~
      drivers/dma-buf/st-dma-resv.c:280:10: note: initialize the variable 'i' to silence this warning
              int r, i;
                      ^
                       = 0
      
      Skip cleaning up the bits that have not been allocated at this point.
      
      Fixes: 1d51775c ("dma-buf: add dma_resv selftest v4")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NArnd Bergmann <arnd@arndb.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211026083448.3471055-1-arnd@kernel.orgSigned-off-by: NChristian König <christian.koenig@amd.com>
      55d5e4f9
  19. 25 10月, 2021 1 次提交
  20. 22 10月, 2021 1 次提交
  21. 19 10月, 2021 1 次提交
  22. 11 10月, 2021 1 次提交
    • T
      dma-resv: Fix dma_resv_get_fences and dma_resv_copy_fences after conversion · 5e51cc00
      Tvrtko Ursulin 提交于
      Cache the count of shared fences in the iterator to avoid dereferencing
      the dma_resv_object outside the RCU protection. Otherwise iterator and its
      users can observe an incosistent state which makes it impossible to use
      safely. Such as:
      
      <6> [187.517041] [IGT] gem_sync: executing
      <7> [187.536343] i915 0000:00:02.0: [drm:i915_gem_context_create_ioctl [i915]] HW context 1 created
      <7> [187.536793] i915 0000:00:02.0: [drm:i915_gem_context_create_ioctl [i915]] HW context 1 created
      <6> [187.551235] [IGT] gem_sync: starting subtest basic-many-each
      <1> [188.935462] BUG: kernel NULL pointer dereference, address: 0000000000000010
      <1> [188.935485] #PF: supervisor write access in kernel mode
      <1> [188.935495] #PF: error_code(0x0002) - not-present page
      <6> [188.935504] PGD 0 P4D 0
      <4> [188.935512] Oops: 0002 [#1] PREEMPT SMP NOPTI
      <4> [188.935521] CPU: 2 PID: 1467 Comm: gem_sync Not tainted 5.15.0-rc4-CI-Patchwork_21264+ #1
      <4> [188.935535] Hardware name:  /NUC6CAYB, BIOS AYAPLCEL.86A.0049.2018.0508.1356 05/08/2018
      <4> [188.935546] RIP: 0010:dma_resv_get_fences+0x116/0x2d0
      <4> [188.935560] Code: 10 85 c0 7f c9 be 03 00 00 00 e8 15 8b df ff eb bd e8 8e c6 ff ff eb b6 41 8b 04 24 49 8b 55 00 48 89 e7 8d 48 01 41 89 0c 24 <4c> 89 34 c2 e8 41 f2 ff ff 49 89 c6 48 85 c0 75 8c 48 8b 44 24 10
      <4> [188.935583] RSP: 0018:ffffc900011dbcc8 EFLAGS: 00010202
      <4> [188.935593] RAX: 0000000000000000 RBX: 00000000ffffffff RCX: 0000000000000001
      <4> [188.935603] RDX: 0000000000000010 RSI: ffffffff822e343c RDI: ffffc900011dbcc8
      <4> [188.935613] RBP: ffffc900011dbd48 R08: ffff88812d255bb8 R09: 00000000fffffffe
      <4> [188.935623] R10: 0000000000000001 R11: 0000000000000000 R12: ffffc900011dbd44
      <4> [188.935633] R13: ffffc900011dbd50 R14: ffff888113d29cc0 R15: 0000000000000000
      <4> [188.935643] FS:  00007f68d17e9700(0000) GS:ffff888277900000(0000) knlGS:0000000000000000
      <4> [188.935655] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4> [188.935665] CR2: 0000000000000010 CR3: 000000012d0a4000 CR4: 00000000003506e0
      <4> [188.935676] Call Trace:
      <4> [188.935685]  i915_gem_object_wait+0x1ff/0x410 [i915]
      <4> [188.935988]  i915_gem_wait_ioctl+0xf2/0x2a0 [i915]
      <4> [188.936272]  ? i915_gem_object_wait+0x410/0x410 [i915]
      <4> [188.936533]  drm_ioctl_kernel+0xae/0x140
      <4> [188.936546]  drm_ioctl+0x201/0x3d0
      <4> [188.936555]  ? i915_gem_object_wait+0x410/0x410 [i915]
      <4> [188.936820]  ? __fget_files+0xc2/0x1c0
      <4> [188.936830]  ? __fget_files+0xda/0x1c0
      <4> [188.936839]  __x64_sys_ioctl+0x6d/0xa0
      <4> [188.936848]  do_syscall_64+0x3a/0xb0
      <4> [188.936859]  entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      If the shared object has changed during the RCU unlocked period
      callers will correctly handle the restart on the next iteration.
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Fixes: 96601e8a ("dma-buf: use new iterator in dma_resv_copy_fences")
      Fixes: d3c80698 ("dma-buf: use new iterator in dma_resv_get_fences v3")
      Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4274
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Sumit Semwal <sumit.semwal@linaro.org>
      Cc: linux-media@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: linaro-mm-sig@lists.linaro.org
      Link: https://patchwork.freedesktop.org/patch/msgid/20211008095007.972693-1-tvrtko.ursulin@linux.intel.comReviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NChristian König <christian.koenig@amd.com>
      5e51cc00
  23. 07 10月, 2021 3 次提交
  24. 06 10月, 2021 5 次提交
  25. 01 10月, 2021 1 次提交
    • C
      dma-buf: fix and rework dma_buf_poll v7 · 6b51b02a
      Christian König 提交于
      Daniel pointed me towards this function and there are multiple obvious problems
      in the implementation.
      
      First of all the retry loop is not working as intended. In general the retry
      makes only sense if you grab the reference first and then check the sequence
      values.
      
      Then we should always also wait for the exclusive fence.
      
      It's also good practice to keep the reference around when installing callbacks
      to fences you don't own.
      
      And last the whole implementation was unnecessary complex and rather hard to
      understand which could lead to probably unexpected behavior of the IOCTL.
      
      Fix all this by reworking the implementation from scratch. Dropping the
      whole RCU approach and taking the lock instead.
      
      Only mildly tested and needs a thoughtful review of the code.
      
      Pushing through drm-misc-next to avoid merge conflicts and give the code
      another round of testing.
      
      v2: fix the reference counting as well
      v3: keep the excl fence handling as is for stable
      v4: back to testing all fences, drop RCU
      v5: handle in and out separately
      v6: add missing clear of events
      v7: change coding style as suggested by Michel, drop unused variables
      Signed-off-by: NChristian König <christian.koenig@amd.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Tested-by: NMichel Dänzer <mdaenzer@redhat.com>
      CC: stable@vger.kernel.org
      Link: https://patchwork.freedesktop.org/patch/msgid/20210720131110.88512-1-christian.koenig@amd.com
      6b51b02a
  26. 14 9月, 2021 1 次提交