[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251120110341.2425-3-thomas.hellstrom@linux.intel.com>
Date: Thu, 20 Nov 2025 12:03:41 +0100
From: Thomas Hellström <thomas.hellstrom@...ux.intel.com>
To: intel-xe@...ts.freedesktop.org
Cc: Thomas Hellström <thomas.hellstrom@...ux.intel.com>,
Matthew Auld <matthew.auld@...el.com>,
Matthew Brost <matthew.brost@...el.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Will Deacon <will@...nel.org>,
Boqun Feng <boqun.feng@...il.com>,
Waiman Long <longman@...hat.com>,
Sumit Semwal <sumit.semwal@...aro.org>,
Christian König <christian.koenig@....com>,
LKML <linux-kernel@...r.kernel.org>,
dri-devel@...ts.freedesktop.org,
linaro-mm-sig@...ts.linaro.org
Subject: [RFC PATCH 2/2] dma-buf/dma-resv: Improve the dma-resv lockdep checks
Ensure that dma_resv_held() and dma_resv_assert_held() operate
on individual reservation objects within a WW transaction rather
than on the reservation WW class.
Signed-off-by: Thomas Hellström <thomas.hellstrom@...ux.intel.com>
---
include/linux/dma-resv.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/include/linux/dma-resv.h b/include/linux/dma-resv.h
index c5ab6fd9ebe8..001de3880fde 100644
--- a/include/linux/dma-resv.h
+++ b/include/linux/dma-resv.h
@@ -308,8 +308,11 @@ static inline bool dma_resv_iter_is_restarted(struct dma_resv_iter *cursor)
fence = dma_resv_iter_first(cursor); fence; \
fence = dma_resv_iter_next(cursor))
-#define dma_resv_held(obj) lockdep_is_held(&(obj)->lock.base)
-#define dma_resv_assert_held(obj) lockdep_assert_held(&(obj)->lock.base)
+#define dma_resv_held(obj) (lockdep_is_held(&(obj)->lock.base) && ww_mutex_held(&(obj)->lock))
+#define dma_resv_assert_held(obj) do { \
+ lockdep_assert_held(&(obj)->lock.base); \
+ ww_mutex_assert_held(&(obj)->lock); \
+ } while (0)
#ifdef CONFIG_DEBUG_MUTEXES
void dma_resv_reset_max_fences(struct dma_resv *obj);
--
2.51.1
Powered by blists - more mailing lists