Commit 1df377db authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

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
parents 8b6b383c e4a02ed2
...@@ -8599,7 +8599,6 @@ F: include/linux/spinlock*.h ...@@ -8599,7 +8599,6 @@ F: include/linux/spinlock*.h
F: arch/*/include/asm/spinlock*.h F: arch/*/include/asm/spinlock*.h
F: include/linux/rwlock*.h F: include/linux/rwlock*.h
F: include/linux/mutex*.h F: include/linux/mutex*.h
F: arch/*/include/asm/mutex*.h
F: include/linux/rwsem*.h F: include/linux/rwsem*.h
F: arch/*/include/asm/rwsem.h F: arch/*/include/asm/rwsem.h
F: include/linux/seqlock.h F: include/linux/seqlock.h
......
...@@ -260,7 +260,7 @@ static void test_cycle_work(struct work_struct *work) ...@@ -260,7 +260,7 @@ static void test_cycle_work(struct work_struct *work)
{ {
struct test_cycle *cycle = container_of(work, typeof(*cycle), work); struct test_cycle *cycle = container_of(work, typeof(*cycle), work);
struct ww_acquire_ctx ctx; struct ww_acquire_ctx ctx;
int err; int err, erra = 0;
ww_acquire_init(&ctx, &ww_class); ww_acquire_init(&ctx, &ww_class);
ww_mutex_lock(&cycle->a_mutex, &ctx); ww_mutex_lock(&cycle->a_mutex, &ctx);
...@@ -270,17 +270,19 @@ static void test_cycle_work(struct work_struct *work) ...@@ -270,17 +270,19 @@ static void test_cycle_work(struct work_struct *work)
err = ww_mutex_lock(cycle->b_mutex, &ctx); err = ww_mutex_lock(cycle->b_mutex, &ctx);
if (err == -EDEADLK) { if (err == -EDEADLK) {
err = 0;
ww_mutex_unlock(&cycle->a_mutex); ww_mutex_unlock(&cycle->a_mutex);
ww_mutex_lock_slow(cycle->b_mutex, &ctx); 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) if (!err)
ww_mutex_unlock(cycle->b_mutex); ww_mutex_unlock(cycle->b_mutex);
ww_mutex_unlock(&cycle->a_mutex); if (!erra)
ww_mutex_unlock(&cycle->a_mutex);
ww_acquire_fini(&ctx); ww_acquire_fini(&ctx);
cycle->result = err; cycle->result = err ?: erra;
} }
static int __test_cycle(unsigned int nthreads) static int __test_cycle(unsigned int nthreads)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment