rwsem: steal writing sem for better performance

Commit 5a50508 changes to rwsem from mutex, caused aim7 fork_test
performance to dropped 50%. Yuanhan liu did an analysis, found it was
caused by strict sequential writing. Ingo suggest stealing sem writing from
front task in wait queue. https://lkml.org/lkml/2013/1/29/84

So does this patch.
In this patch, I just allow write stealing to happen when the first waiter
is also writer. The performance fully is now fully recovered.

Reported-by: lkp@linux.intel.com
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Alex Shi <alex.shi@intel.com>

Conflicts:

	lib/rwsem.c
Linux 3.069
bcmdhd: reenable IPv6, disable multicast in suspend

Change-Id: Ibed08394600cd00bbace45d55f75d0bb1e12c537
bcmdhd: disable GAN_LITE_NAT_KEEPALIVE_FILTER

Change-Id: Ibffa4612d418a93483d3a6b374b3f87a554b57d5