Page MenuHomeFreeBSD

D20992.diff
No OneTemporary

D20992.diff

Index: head/sys/compat/linuxkpi/common/include/linux/lockdep.h
===================================================================
--- head/sys/compat/linuxkpi/common/include/linux/lockdep.h
+++ head/sys/compat/linuxkpi/common/include/linux/lockdep.h
@@ -40,13 +40,34 @@
#define lockdep_set_current_reclaim_state(g) do { } while (0)
#define lockdep_clear_current_reclaim_state() do { } while (0)
-#define lockdep_assert_held(m) \
- sx_assert(&(m)->sx, SA_XLOCKED)
+#ifdef INVARIANTS
+#define lockdep_assert_held(m) do { \
+ struct lock_object *__lock = (struct lock_object *)(m); \
+ LOCK_CLASS(__lock)->lc_assert(__lock, LA_LOCKED); \
+} while (0)
-#define lockdep_assert_held_once(m) \
- sx_assert(&(m)->sx, SA_XLOCKED | SA_NOTRECURSED)
+#define lockdep_assert_held_once(m) do { \
+ struct lock_object *__lock = (struct lock_object *)(m); \
+ LOCK_CLASS(__lock)->lc_assert(__lock, LA_LOCKED | LA_NOTRECURSED); \
+} while (0)
-#define lockdep_is_held(m) (sx_xholder(&(m)->sx) == curthread)
+static __inline bool
+lockdep_is_held(void *__m)
+{
+ struct lock_object *__lock;
+ struct thread *__td;
+
+ __lock = __m;
+ return (LOCK_CLASS(__lock)->lc_owner(__lock, &__td) != 0);
+}
+
+#else
+#define lockdep_assert_held(m) do { } while (0)
+
+#define lockdep_assert_held_once(m) do { } while (0)
+
+#define lockdep_is_held(m) 1
+#endif
#define might_lock(m) do { } while (0)
#define might_lock_read(m) do { } while (0)

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 15, 12:09 PM (1 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29688571
Default Alt Text
D20992.diff (1 KB)

Event Timeline