]> git.baikalelectronics.ru Git - kernel.git/commit
rwsem: simplify __rwsem_do_wake
authorMichel Lespinasse <walken@google.com>
Tue, 7 May 2013 13:45:58 +0000 (06:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 14:20:16 +0000 (07:20 -0700)
commitdd9e276957c6576e599f1198a0869223f279e291
treea7b49b135dc7703a4a709562178a847fb9bc4f77
parent3711dfd55b194d9eb61fc7883bb8ed5598706c91
rwsem: simplify __rwsem_do_wake

This is mostly for cleanup value:

- We don't need several gotos to handle the case where the first
  waiter is a writer. Two simple tests will do (and generate very
  similar code).

- In the remainder of the function, we know the first waiter is a reader,
  so we don't have to double check that. We can use do..while loops
  to iterate over the readers to wake (generates slightly better code).

Signed-off-by: Michel Lespinasse <walken@google.com>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Acked-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/rwsem-spinlock.c
lib/rwsem.c