Revert "Revert 4.8 linaro fix"

This reverts commit 3f3d1acf5c4daedb48b488447d09dc7929c2d79a.
Revert "dm crypt: always disable discard_zeroes_data"

This reverts commit caad1c15488de4a8c5d9625fdc61604fdd7ff5bf.
Revert "dm table: set flush capability based on underlying devices"

This reverts commit 3f0175533688e9c19ba923667d42f161d8409d21.
Revert "dm crypt: optionally support discard requests"

This reverts commit adeafd7e13f7825c117423a21a7de4ee95c17d6c.
Revert "dm table: share target argument parsing functions"

This reverts commit 1ba79964e7b0fe1fcc5679bcad6a54f3ddaf0c11.
Revert "dm: ignore merge_bvec for snapshots when safe"

This reverts commit 5bcd25af0a295da206ead07c9d76c4d41126ea2f.
Revert "dm table: clean dm_get_device and move exports"

This reverts commit b5b786fc64adaf821d8afc0d9e991566b765b112.
Revert "dm table: fix discard support"

This reverts commit d6994e6e55a9a0008ed6b0131ca39114856f2d25.
Revert "dm: use vzalloc"

This reverts commit 045786ca08dfb8cf84ea7f511e2306a664776b56.
Revert "dm: suppress endian warnings"

This reverts commit d212135cfb404de1d73722bd8ba8696ca13f65b4.
Revert "Hardcode boot min frequency to 350mhz"

This reverts commit 3d0d51adb039e7c8c60dcda03a8e9dd5303a1734.
Revert "Dock connection Bug"

This reverts commit 334f319f501d0bff7e95fe95066aa7c8a641274b.
Updated to latest Google Csnappy compressor for ZRAM.
exFAT v1.2.4 [Samsung-OSRC]
 ARM: 7809/1: perf: fix event validation for software group leaders

It is possible to construct an event group with a software event as a
group leader and then subsequently add a hardware event to the group.
This results in the event group being validated by adding all members
of the group to a fake PMU and attempting to allocate each event on
their respective PMU.

Unfortunately, for software events wthout a corresponding arm_pmu, this
results in a kernel crash attempting to dereference the ->get_event_idx
function pointer.

This patch fixes the problem by checking explicitly for software events
and ignoring those in event validation (since they can always be
scheduled). We will probably want to revisit this for 3.12, since the
validation checks dont appear to work correctly when dealing with
multiple hardware PMUs anyway.

Cc: <stable@vger.kernel.org>
Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Tested-by: Vince Weaver <vincent.weaver@maine.edu>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 ARM: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU

Modern ARM CPUs can perform efficient unaligned memory accesses in
hardware and this feature is relied up on by code such as the dcache
word-at-a-time name hashing.

[pawitp: adapt to kernel 3.0]

Change-Id: I41559fc9255229e2601f4bef28aa8d48246156b7
Signed-off-by: Will Deacon <will.deacon@arm.com>