Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8b2ba83 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull locking fixes from Thomas Gleixner:

 - Fix the EINTR logic in rwsem-spinlock to avoid double locking by a
   writer and a reader

 - Add a missing include to qspinlocks

* 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  locking/qspinlock: Explicitly include asm/prefetch.h
  locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()
parents 7cb328c3 5671360f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <linux/percpu.h>
#include <linux/hardirq.h>
#include <linux/mutex.h>
#include <linux/prefetch.h>
#include <asm/byteorder.h>
#include <asm/qspinlock.h>

+2 −2
Original line number Diff line number Diff line
@@ -231,8 +231,8 @@ int __sched __down_write_common(struct rw_semaphore *sem, int state)

out_nolock:
	list_del(&waiter.list);
	if (!list_empty(&sem->wait_list))
		__rwsem_do_wake(sem, 1);
	if (!list_empty(&sem->wait_list) && sem->count >= 0)
		__rwsem_do_wake(sem, 0);
	raw_spin_unlock_irqrestore(&sem->wait_lock, flags);

	return -EINTR;