mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Ingo writes: "locking fixes: A fix in the ww_mutex self-test that produces a scary splat, plus an updates to the maintained-filed patters in MAINTAINER." * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/ww_mutex: Fix runtime warning in the WW mutex selftest MAINTAINERS: Remove dead path from LOCKING PRIMITIVES entry
This commit is contained in:
commit
1df377db3d
@ -8599,7 +8599,6 @@ F: include/linux/spinlock*.h
|
||||
F: arch/*/include/asm/spinlock*.h
|
||||
F: include/linux/rwlock*.h
|
||||
F: include/linux/mutex*.h
|
||||
F: arch/*/include/asm/mutex*.h
|
||||
F: include/linux/rwsem*.h
|
||||
F: arch/*/include/asm/rwsem.h
|
||||
F: include/linux/seqlock.h
|
||||
|
@ -260,7 +260,7 @@ static void test_cycle_work(struct work_struct *work)
|
||||
{
|
||||
struct test_cycle *cycle = container_of(work, typeof(*cycle), work);
|
||||
struct ww_acquire_ctx ctx;
|
||||
int err;
|
||||
int err, erra = 0;
|
||||
|
||||
ww_acquire_init(&ctx, &ww_class);
|
||||
ww_mutex_lock(&cycle->a_mutex, &ctx);
|
||||
@ -270,17 +270,19 @@ static void test_cycle_work(struct work_struct *work)
|
||||
|
||||
err = ww_mutex_lock(cycle->b_mutex, &ctx);
|
||||
if (err == -EDEADLK) {
|
||||
err = 0;
|
||||
ww_mutex_unlock(&cycle->a_mutex);
|
||||
ww_mutex_lock_slow(cycle->b_mutex, &ctx);
|
||||
err = ww_mutex_lock(&cycle->a_mutex, &ctx);
|
||||
erra = ww_mutex_lock(&cycle->a_mutex, &ctx);
|
||||
}
|
||||
|
||||
if (!err)
|
||||
ww_mutex_unlock(cycle->b_mutex);
|
||||
ww_mutex_unlock(&cycle->a_mutex);
|
||||
if (!erra)
|
||||
ww_mutex_unlock(&cycle->a_mutex);
|
||||
ww_acquire_fini(&ctx);
|
||||
|
||||
cycle->result = err;
|
||||
cycle->result = err ?: erra;
|
||||
}
|
||||
|
||||
static int __test_cycle(unsigned int nthreads)
|
||||
|
Loading…
Reference in New Issue
Block a user