diff options
| author | Catalin Marinas <catalin.marinas@arm.com> | 2014-05-16 05:05:11 -0400 |
|---|---|---|
| committer | Catalin Marinas <catalin.marinas@arm.com> | 2014-05-16 05:05:11 -0400 |
| commit | cf5c95db57ffa02e430c3840c08d1ee0403849d4 (patch) | |
| tree | b3b4df5e1edcde098cf45b7fa00c8450e6d665f8 /include/asm-generic | |
| parent | fd92d4a54a069953b4679958121317f2a25389cd (diff) | |
| parent | 49788fe2a128217f78a21ee4edbe6e92e988f222 (diff) | |
Merge tag 'for-3.16' of git://git.linaro.org/people/ard.biesheuvel/linux-arm into upstream
FPSIMD register bank context switching and crypto algorithms
optimisations for arm64 from Ard Biesheuvel.
* tag 'for-3.16' of git://git.linaro.org/people/ard.biesheuvel/linux-arm:
arm64/crypto: AES-ECB/CBC/CTR/XTS using ARMv8 NEON and Crypto Extensions
arm64: pull in <asm/simd.h> from asm-generic
arm64/crypto: AES in CCM mode using ARMv8 Crypto Extensions
arm64/crypto: AES using ARMv8 Crypto Extensions
arm64/crypto: GHASH secure hash using ARMv8 Crypto Extensions
arm64/crypto: SHA-224/SHA-256 using ARMv8 Crypto Extensions
arm64/crypto: SHA-1 using ARMv8 Crypto Extensions
arm64: add support for kernel mode NEON in interrupt context
arm64: defer reloading a task's FPSIMD state to userland resume
arm64: add abstractions for FPSIMD state manipulation
asm-generic: allow generic unaligned access if the arch supports it
Conflicts:
arch/arm64/include/asm/thread_info.h
Diffstat (limited to 'include/asm-generic')
| -rw-r--r-- | include/asm-generic/unaligned.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/include/asm-generic/unaligned.h b/include/asm-generic/unaligned.h index 03cf5936bad6..1ac097279db1 100644 --- a/include/asm-generic/unaligned.h +++ b/include/asm-generic/unaligned.h | |||
| @@ -4,22 +4,27 @@ | |||
| 4 | /* | 4 | /* |
| 5 | * This is the most generic implementation of unaligned accesses | 5 | * This is the most generic implementation of unaligned accesses |
| 6 | * and should work almost anywhere. | 6 | * and should work almost anywhere. |
| 7 | * | ||
| 8 | * If an architecture can handle unaligned accesses in hardware, | ||
| 9 | * it may want to use the linux/unaligned/access_ok.h implementation | ||
| 10 | * instead. | ||
| 11 | */ | 7 | */ |
| 12 | #include <asm/byteorder.h> | 8 | #include <asm/byteorder.h> |
| 13 | 9 | ||
| 10 | /* Set by the arch if it can handle unaligned accesses in hardware. */ | ||
| 11 | #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS | ||
| 12 | # include <linux/unaligned/access_ok.h> | ||
| 13 | #endif | ||
| 14 | |||
| 14 | #if defined(__LITTLE_ENDIAN) | 15 | #if defined(__LITTLE_ENDIAN) |
| 15 | # include <linux/unaligned/le_struct.h> | 16 | # ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS |
| 16 | # include <linux/unaligned/be_byteshift.h> | 17 | # include <linux/unaligned/le_struct.h> |
| 18 | # include <linux/unaligned/be_byteshift.h> | ||
| 19 | # endif | ||
| 17 | # include <linux/unaligned/generic.h> | 20 | # include <linux/unaligned/generic.h> |
| 18 | # define get_unaligned __get_unaligned_le | 21 | # define get_unaligned __get_unaligned_le |
| 19 | # define put_unaligned __put_unaligned_le | 22 | # define put_unaligned __put_unaligned_le |
| 20 | #elif defined(__BIG_ENDIAN) | 23 | #elif defined(__BIG_ENDIAN) |
| 21 | # include <linux/unaligned/be_struct.h> | 24 | # ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS |
| 22 | # include <linux/unaligned/le_byteshift.h> | 25 | # include <linux/unaligned/be_struct.h> |
| 26 | # include <linux/unaligned/le_byteshift.h> | ||
| 27 | # endif | ||
| 23 | # include <linux/unaligned/generic.h> | 28 | # include <linux/unaligned/generic.h> |
| 24 | # define get_unaligned __get_unaligned_be | 29 | # define get_unaligned __get_unaligned_be |
| 25 | # define put_unaligned __put_unaligned_be | 30 | # define put_unaligned __put_unaligned_be |
