diff options
Diffstat (limited to 'kernel/lockdep.c')
-rw-r--r-- | kernel/lockdep.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 81968a065b4c..3956f5149e25 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
@@ -2468,6 +2468,9 @@ mark_held_locks(struct task_struct *curr, enum mark_type mark) | |||
2468 | 2468 | ||
2469 | BUG_ON(usage_bit >= LOCK_USAGE_STATES); | 2469 | BUG_ON(usage_bit >= LOCK_USAGE_STATES); |
2470 | 2470 | ||
2471 | if (hlock_class(hlock)->key == &__lockdep_no_validate__) | ||
2472 | continue; | ||
2473 | |||
2471 | if (!mark_lock(curr, hlock, usage_bit)) | 2474 | if (!mark_lock(curr, hlock, usage_bit)) |
2472 | return 0; | 2475 | return 0; |
2473 | } | 2476 | } |
@@ -3436,7 +3439,7 @@ int lock_is_held(struct lockdep_map *lock) | |||
3436 | int ret = 0; | 3439 | int ret = 0; |
3437 | 3440 | ||
3438 | if (unlikely(current->lockdep_recursion)) | 3441 | if (unlikely(current->lockdep_recursion)) |
3439 | return ret; | 3442 | return 1; /* avoid false negative lockdep_assert_held() */ |
3440 | 3443 | ||
3441 | raw_local_irq_save(flags); | 3444 | raw_local_irq_save(flags); |
3442 | check_flags(flags); | 3445 | check_flags(flags); |