mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 09:02:06 +00:00
Locking changes for this cycle were:
- rtmutex cleanup & spring cleaning pass that removes ~400 lines of code - Futex simplifications & cleanups - Add debugging to the CSD code, to help track down a tenacious race (or hw problem) - Add lockdep_assert_not_held(), to allow code to require a lock to not be held, and propagate this into the ath10k driver - Misc LKMM documentation updates - Misc KCSAN updates: cleanups & documentation updates - Misc fixes and cleanups - Fix locktorture bugs with ww_mutexes Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmCJDn0RHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1hPrRAAryS4zPnuDsfkVk0smxo7a0lK5ljbH2Xo 28QUZXOl6upnEV8dzbjwG7eAjt5ZJVI5tKIeG0PV0NUJH2nsyHwESdtULGGYuPf/ 4YUzNwZJa+nI/jeBnVsXCimLVxxnNCRdR7yOVOHm4ukEwa+YTNt1pvlYRmUd4YyH Q5cCrpb3THvLka3AAamEbqnHnAdGxHKuuHYVRkODpMQ+zrQvtN8antYsuk8kJsqM m+GZg/dVCuLEPah5k+lOACtcq/w7HCmTlxS8t4XLvD52jywFZLcCPvi1rk0+JR+k Vd9TngC09GJ4jXuDpr42YKkU9/X6qy2Es39iA/ozCvc1Alrhspx/59XmaVSuWQGo XYuEPx38Yuo/6w16haSgp0k4WSay15A4uhCTQ75VF4vli8Bqgg9PaxLyQH1uG8e2 xk8U90R7bDzLlhKYIx1Vu5Z0t7A1JtB5CJtgpcfg/zQLlzygo75fHzdAiU5fDBDm 3QQXSU2Oqzt7c5ZypioHWazARk7tL6th38KGN1gZDTm5zwifpaCtHi7sml6hhZ/4 ATH6zEPzIbXJL2UqumSli6H4ye5ORNjOu32r7YPqLI4IDbzpssfoSwfKYlQG4Tvn 4H1Ukirzni0gz5+wbleItzf2aeo1rocs4YQTnaT02j8NmUHUz4AzOHGOQFr5Tvh0 wk/P4MIoSb0= =cOOk -----END PGP SIGNATURE----- Merge tag 'locking-core-2021-04-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking updates from Ingo Molnar: - rtmutex cleanup & spring cleaning pass that removes ~400 lines of code - Futex simplifications & cleanups - Add debugging to the CSD code, to help track down a tenacious race (or hw problem) - Add lockdep_assert_not_held(), to allow code to require a lock to not be held, and propagate this into the ath10k driver - Misc LKMM documentation updates - Misc KCSAN updates: cleanups & documentation updates - Misc fixes and cleanups - Fix locktorture bugs with ww_mutexes * tag 'locking-core-2021-04-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits) kcsan: Fix printk format string static_call: Relax static_call_update() function argument type static_call: Fix unused variable warn w/o MODULE locking/rtmutex: Clean up signal handling in __rt_mutex_slowlock() locking/rtmutex: Restrict the trylock WARN_ON() to debug locking/rtmutex: Fix misleading comment in rt_mutex_postunlock() locking/rtmutex: Consolidate the fast/slowpath invocation locking/rtmutex: Make text section and inlining consistent locking/rtmutex: Move debug functions as inlines into common header locking/rtmutex: Decrapify __rt_mutex_init() locking/rtmutex: Remove pointless CONFIG_RT_MUTEXES=n stubs locking/rtmutex: Inline chainwalk depth check locking/rtmutex: Move rt_mutex_debug_task_free() to rtmutex.c locking/rtmutex: Remove empty and unused debug stubs locking/rtmutex: Consolidate rt_mutex_init() locking/rtmutex: Remove output from deadlock detector locking/rtmutex: Remove rtmutex deadlock tester leftovers locking/rtmutex: Remove rt_mutex_timed_lock() MAINTAINERS: Add myself as futex reviewer locking/mutex: Remove repeated declaration ...
This commit is contained in:
commit
0ff0edb550
44 changed files with 1248 additions and 829 deletions
|
@ -54,6 +54,7 @@
|
|||
#include <linux/nmi.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/lockdep.h>
|
||||
|
||||
#include <asm/sections.h>
|
||||
|
||||
|
@ -1747,7 +1748,7 @@ static enum bfs_result __bfs(struct lock_list *source_entry,
|
|||
|
||||
/*
|
||||
* Step 4: if not match, expand the path by adding the
|
||||
* forward or backwards dependencis in the search
|
||||
* forward or backwards dependencies in the search
|
||||
*
|
||||
*/
|
||||
first = true;
|
||||
|
@ -1916,7 +1917,7 @@ print_circular_bug_header(struct lock_list *entry, unsigned int depth,
|
|||
* -> B is -(ER)-> or -(EN)->, then we don't need to add A -> B into the
|
||||
* dependency graph, as any strong path ..-> A -> B ->.. we can get with
|
||||
* having dependency A -> B, we could already get a equivalent path ..-> A ->
|
||||
* .. -> B -> .. with A -> .. -> B. Therefore A -> B is reduntant.
|
||||
* .. -> B -> .. with A -> .. -> B. Therefore A -> B is redundant.
|
||||
*
|
||||
* We need to make sure both the start and the end of A -> .. -> B is not
|
||||
* weaker than A -> B. For the start part, please see the comment in
|
||||
|
@ -5253,13 +5254,13 @@ int __lock_is_held(const struct lockdep_map *lock, int read)
|
|||
|
||||
if (match_held_lock(hlock, lock)) {
|
||||
if (read == -1 || hlock->read == read)
|
||||
return 1;
|
||||
return LOCK_STATE_HELD;
|
||||
|
||||
return 0;
|
||||
return LOCK_STATE_NOT_HELD;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return LOCK_STATE_NOT_HELD;
|
||||
}
|
||||
|
||||
static struct pin_cookie __lock_pin_lock(struct lockdep_map *lock)
|
||||
|
@ -5538,10 +5539,14 @@ EXPORT_SYMBOL_GPL(lock_release);
|
|||
noinstr int lock_is_held_type(const struct lockdep_map *lock, int read)
|
||||
{
|
||||
unsigned long flags;
|
||||
int ret = 0;
|
||||
int ret = LOCK_STATE_NOT_HELD;
|
||||
|
||||
/*
|
||||
* Avoid false negative lockdep_assert_held() and
|
||||
* lockdep_assert_not_held().
|
||||
*/
|
||||
if (unlikely(!lockdep_enabled()))
|
||||
return 1; /* avoid false negative lockdep_assert_held() */
|
||||
return LOCK_STATE_UNKNOWN;
|
||||
|
||||
raw_local_irq_save(flags);
|
||||
check_flags(flags);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue