Commit Graph

381001 Commits

Author SHA1 Message Date
Mark Brown
3f8c76bb4f Merge remote-tracking branch 'lsk/v3.10/topic/arm64-be' into linux-linaro-lsk 2014-05-21 17:59:59 +01:00
H. Peter Anvin
8c8e31f98c word-at-a-time: simplify big-endian zero_bytemask macro
This is simpler and cleaner.  Depending on architecture, a smart
compiler may or may not generate the same code.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 789ce9dca8)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 17:59:31 +01:00
Will Deacon
68813d8f7e word-at-a-time: avoid undefined behaviour in zero_bytemask macro
The asm-generic, big-endian version of zero_bytemask creates a mask of
bytes preceding the first zero-byte by left shifting ~0ul based on the
position of the first zero byte.

Unfortunately, if the first (top) byte is zero, the output of
prep_zero_mask has only the top bit set, resulting in undefined C
behaviour as we shift left by an amount equal to the width of the type.
As it happens, GCC doesn't manage to spot this through the call to fls(),
but the issue remains if architectures choose to implement their shift
instructions differently.

An example would be arch/arm/ (AArch32), where LSL Rd, Rn, #32 results
in Rd == 0x0, whilst on arch/arm64 (AArch64) LSL Xd, Xn, #64 results in
Xd == Xn.

Rather than check explicitly for the problematic shift, this patch adds
an extra shift by 1, replacing fls with __fls. Since zero_bytemask is
never called with a zero argument (has_zero() is used to check the data
first), we don't need to worry about calling __fls(0), which is
undefined.

Cc: <stable@vger.kernel.org>
Cc: Victor Kamensky <victor.kamensky@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit ec6931b281)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 17:59:22 +01:00
Will Deacon
e73d8c4d6e word-at-a-time: provide generic big-endian zero_bytemask implementation
Whilst architectures may be able to do better than this (which they can,
by simply defining their own macro), this is a generic stab at a
zero_bytemask implementation for the asm-generic, big-endian
word-at-a-time implementation.

On arm64, a clz instruction is used to implement the fls efficiently.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 11ec50caed)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 17:59:13 +01:00
Mark Brown
016e8cd0ca Merge remote-tracking branch 'lsk/v3.10/topic/arm64-misc' into linux-linaro-lsk 2014-05-21 17:55:59 +01:00
Jiang Liu
eeae892aea arm64, jump label: detect %c support for ARM64
As commit a9468f30b5 "ARM: 7333/2: jump label: detect %c
support for ARM", this patch detects the same thing for ARM64
because some ARM64 GCC versions have the same issue.

Some versions of ARM64 GCC which do support asm goto, do not
support the %c specifier. Since we need the %c to support jump
labels on ARM64, detect that too in the asm goto detection script
to avoid build errors with these versions.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit f3c003f72d)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 17:54:10 +01:00
Mark Brown
d8e72f6b16 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-kgdb' into linux-linaro-lsk
Conflicts:
	arch/arm64/Kconfig
	arch/arm64/include/asm/debug-monitors.h
	arch/arm64/kernel/Makefile
	arch/arm64/kernel/debug-monitors.c
2014-05-21 17:35:46 +01:00
Vijaya Kumar K
9da2fb2070 arm64: KGDB: Add KGDB config
Add HAVE_ARCH_KGDB for arm64 Kconfig

Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 9529247db9)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/Kconfig
2014-05-21 16:02:46 +01:00
Vijaya Kumar K
c607b2e09c misc: debug: remove compilation warnings
typecast instruction_pointer macro to unsigned long to
resolve following compiler warnings like
warning: format '%lx' expects argument of type 'long unsigned int',
but argument 2 has type 'u64' [-Wformat]

Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 58dcc204f1)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 16:02:04 +01:00
Vijaya Kumar K
2d694c96ec arm64: KGDB: Add step debugging support
Add KGDB software step debugging support for EL1 debug
in AArch64 mode.

KGDB registers step debug handler with debug monitor.
On receiving 'step' command from GDB tool, target enables
software step debugging and step address is updated in ELR.

Software Step debugging is disabled when 'continue' command
is received

Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 44679a4f14)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 16:01:46 +01:00
Vijaya Kumar K
412cfd6f06 arm64: KGDB: Add Basic KGDB support
Add KGDB debug support for kernel debugging.
With this patch, basic KGDB debugging is possible.GDB register
layout is updated and GDB tool can establish connection with
target and can set/clear breakpoints.

Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit bcf5763b0d)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/kernel/Makefile
2014-05-21 16:01:36 +01:00
Vijaya Kumar K
92d246de32 arm64: Add macros to manage processor debug state
Add macros to enable and disable to manage PSTATE.D
for debugging. The macros local_dbg_save and local_dbg_restore
are moved to irqflags.h file

KGDB boot tests fail because of PSTATE.D is masked.
unmask it for debugging support

Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit c7db4ff5d2)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 16:01:06 +01:00
Mark Rutland
e2a137cc65 arm64: defconfig: Expand default enabled features
FPGA implementations of the Cortex-A57 and Cortex-A53 are now available
in the form of the SMM-A57 and SMM-A53 Soft Macrocell Models (SMMs) for
Versatile Express. As these attach to a Motherboard Express V2M-P1 it
would be useful to have support for some V2M-P1 peripherals enabled by
default.

Additionally a couple of of features have been introduced since the last
defconfig update (CMA, jump labels) that would be good to have enabled
by default to ensure they are build and boot tested.

This patch updates the arm64 defconfig to enable support for these
devices and features. The arm64 Kconfig is modified to select
HAVE_PATA_PLATFORM, which is required to enable support for the
CompactFlash controller on the V2M-P1.

A few options which don't need to appear in defconfig are trimmed:

* BLK_DEV - selected by default
* EXPERIMENTAL - otherwise gone from the kernel
* MII - selected by drivers which require it
* USB_SUPPORT - selected by default

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 55834a773f)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/configs/defconfig
2014-05-21 15:59:45 +01:00
Will Deacon
8d0390d596 arm64: asm: remove redundant "cc" clobbers
cbnz/tbnz don't update the condition flags, so remove the "cc" clobbers
from inline asm blocks that only use these instructions to implement
conditional branches.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 95c4189689)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 15:58:44 +01:00
Will Deacon
a268cb19ce arm64: barriers: allow dsb macro to take option parameter
The dsb instruction takes an option specifying both the target access
types and shareability domain.

This patch allows such an option to be passed to the dsb macro,
resulting in potentially more efficient code. Currently the option is
ignored until all callers are updated (unlike ARM, the option is
mandated by the assembler).

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 4a7ac12eed)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 15:58:22 +01:00
Mark Rutland
007f5253a5 arm64: simplify pgd_alloc
Currently pgd_alloc has a redundant NULL check in its return path that
can be removed with no ill effects. With that removed it's also possible
to return early and eliminate the new_pgd temporary variable.

This patch applies said modifications, making the logic of pgd_alloc
correspond 1-1 with that of pgd_free.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 883d50a0ed)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-21 15:57:35 +01:00
Mark Rutland
94464a71aa arm64: fix typo: s/SERRROR/SERROR/
Somehow SERROR has acquired an additional 'R' in a couple of headers.
This patch removes them before they spread further. As neither instance
is in use yet, no other sites need to be fixed up.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit bfb67a5606)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/include/asm/kvm_arm.h
2014-05-21 15:55:15 +01:00
Mark Brown
49c72bffd2 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-misc' into linux-linaro-lsk 2014-05-20 17:21:25 +01:00
Jingoo Han
0f4a77d8b0 arm64: mm: fix the function name in comment of cpu_do_switch_mm
Fix the function name of comment of cpu_do_switch_mm,
because cpu_do_switch_mm is the correct name.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 812944e91d)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:17:38 +01:00
Jingoo Han
2090a8e22b arm64: mm: fix the function name in comment of __flush_dcache_area
Fix the function name of comment of __flush_dcache_area,
because __flush_dcache_area is the correct name. Also,
the missing variable 'size' is added to the comment.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 03324e6e6e)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:12:29 +01:00
Jingoo Han
a0d25707b7 arm64: mm: use ubfm for dcache_line_size
Use 'ubfm' for the bitfield move instruction; thus, single
instruction can be used instead of two instructions, when
getting the minimum D-cache line size from CTR_EL0 register.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit bd5f6dc304)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:12:17 +01:00
Mark Brown
0ae60b6553 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-insn' into linux-linaro-lsk
Conflicts:
	arch/arm64/kernel/Makefile
	arch/arm64/kernel/module.c
2014-05-20 13:03:38 +01:00
Jiang Liu
d6e6ff5d20 arm64, jump label: optimize jump label implementation
Optimize jump label implementation for ARM64 by dynamically patching
kernel text.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 9732cafd9d)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/kernel/Makefile
2014-05-20 13:02:05 +01:00
Jiang Liu
228d249ff9 arm64: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions
Introduce aarch64_insn_gen_{nop|branch_imm}() helper functions, which
will be used to implement jump label on ARM64.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 5c5bf25d4f)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:01:09 +01:00
Jiang Liu
0eebc289ae arm64: move encode_insn_immediate() from module.c to insn.c
Function encode_insn_immediate() will be used by other instruction
manipulate related functions, so move it into insn.c and rename it
as aarch64_insn_encode_immediate().

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit c84fced8d9)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:01:00 +01:00
Will Deacon
357b5fc58a arm64: module: ensure instruction is little-endian before manipulation
Relocations that require an instruction immediate to be re-encoded must
ensure that the instruction pattern is represented in a little-endian
format for the manipulation code to work correctly.

This patch converts the loaded instruction into native-endianess prior
to encoding and then converts back to little-endian byteorder before
updating memory.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Tested-by: Matthew Leach <matthew.leach@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 122e2fa0d3)

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
(cherry picked from commit 36bada1e73)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 13:00:52 +01:00
Jiang Liu
9f6c84430a arm64: introduce interfaces to hotpatch kernel and module code
Introduce three interfaces to patch kernel and module code:
aarch64_insn_patch_text_nosync():
	patch code without synchronization, it's caller's responsibility
	to synchronize all CPUs if needed.
aarch64_insn_patch_text_sync():
	patch code and always synchronize with stop_machine()
aarch64_insn_patch_text():
	patch code and synchronize with stop_machine() if needed

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit ae16480785)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 12:59:18 +01:00
Jiang Liu
f8dadc9b5e arm64: introduce basic aarch64 instruction decoding helpers
Introduce basic aarch64 instruction decoding helper
aarch64_get_insn_class() and aarch64_insn_hotpatch_safe().

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit b11a64a48c)
Signed-off-by: Mark Brown <broonie@linaro.org>

Conflicts:
	arch/arm64/kernel/Makefile
2014-05-20 12:59:07 +01:00
Mark Brown
07e790e40c arm64: arch_timer: Fix mismerge
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 02:22:33 +01:00
Mark Brown
57b66b618b Merge remote-tracking branch 'lsk/v3.10/topic/arm64-misc' into linux-linaro-lsk 2014-05-20 01:02:32 +01:00
Geoff Levand
5c1bcd9ba5 arm64: Remove unused __data_loc variable
The __data_loc variable is an unused left over from the 32 bit arm implementation.
Remove that variable and adjust the __mmap_switched startup routine accordingly.

Signed-off-by: Geoff Levand <geoff@infradead.org> for Huawei, Linaro
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit b22cf637bb)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 01:01:31 +01:00
Mark Brown
5a526a33b6 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-ptrace' into linux-linaro-lsk 2014-05-20 00:58:52 +01:00
Mark Brown
89901b4658 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-crypto' into linux-linaro-lsk
Conflicts:
	arch/arm64/include/asm/arch_timer.h
	arch/arm64/include/asm/hwcap.h
	arch/arm64/include/uapi/asm/hwcap.h
	arch/arm64/kernel/setup.c
2014-05-20 00:57:49 +01:00
Ard Biesheuvel
fa9816283e arm64: advertise ARMv8 extensions to 32-bit compat ELF binaries
This adds support for advertising the presence of ARMv8 Crypto
Extensions in the Aarch32 execution state to 32-bit ELF binaries
running in 32-bit compat mode under the arm64 kernel.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 4cf761cdcc)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 00:53:15 +01:00
Ard Biesheuvel
0e985d1688 arm64: add AT_HWCAP2 support for 32-bit compat
Add support for the ELF auxv entry AT_HWCAP2 when running 32-bit
ELF binaries in compat mode.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 28964d32d4)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-20 00:53:06 +01:00
Steve Capper
5633cbcce8 arm64: Add hwcaps for crypto and CRC32 extensions.
Advertise the optional cryptographic and CRC32 instructions to
user space where present. Several hwcap bits [3-7] are allocated.

Signed-off-by: Steve Capper <steve.capper@linaro.org>
[bit 2 is taken now so use bits 3-7 instead]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

(cherry picked from commit 4bff28ccda)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 19:52:34 +01:00
Ard Biesheuvel
3e7e34ab3d arm64: drop redundant macros from read_cpuid()
asm/cputype.h contains a bunch of #defines for CPU id registers
that essentially map to themselves. Remove the #defines and pass
the tokens directly to the inline asm() that reads the registers.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 148eb0a1db)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 19:52:31 +01:00
Liviu Dudau
c2f8299287 arm64: Remove outdated comment
Code referenced in the comment has moved to arch/arm64/kernel/cputable.c

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 81cac69944)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 19:50:42 +01:00
Sandeepa Prabhu
a6e15359d5 arm64: support single-step and breakpoint handler hooks
AArch64 Single Steping and Breakpoint debug exceptions will be
used by multiple debug framworks like kprobes & kgdb.

This patch implements the hooks for those frameworks to register
their own handlers for handling breakpoint and single step events.

Reworked the debug exception handler in entry.S: do_dbg to route
software breakpoint (BRK64) exception to do_debug_exception()

Signed-off-by: Sandeepa Prabhu <sandeepa.prabhu@linaro.org>
Signed-off-by: Deepak Saxena <dsaxena@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit ee6214cec7)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 19:50:20 +01:00
Will Deacon
eec87ea4cb arm64: debug: consolidate software breakpoint handlers
The software breakpoint handlers are hooked in directly from ptrace,
which makes it difficult to add additional handlers for things like
kprobes and kgdb.

This patch moves the handling code into debug-monitors.c, where we can
dispatch to different debug subsystems more easily.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 1442b6ed24)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 19:50:16 +01:00
Mark Brown
cc63b3e18e Merge tag 'v3.10.40' into linux-linaro-lsk
This is the 3.10.40 stable release
2014-05-19 19:44:35 +01:00
Mark Brown
121c419afe Merge remote-tracking branch 'lsk/v3.10/topic/devm' into linux-linaro-lsk 2014-05-19 19:31:03 +01:00
Kevin Hilman
b93678a7c5 devres: restore zeroing behavior of devres_alloc()
commit 64c862a8 (devres: add kernel standard devm_k.alloc functions) changed
the default behavior of alloc_dr() to no longer zero the allocated memory.  However,
only the devm.k.alloc() function were modified to pass in __GFP_ZERO which leaves
any users of devres_alloc() or __devres_alloc() with potentially wrong assumptions
about memory being zero'd upon allocation.

To fix, add __GFP_ZERO to devres_alloc() calls to preserve previous
behavior of zero'ing memory upon allocation.

Signed-off-by: Kevin Hilman <khilman@linaro.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 6fffcfa7c0)
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 18:01:19 +01:00
Joe Perches
266a1aedb2 devres: add kernel standard devm_k.alloc functions
Currently, devm_ managed memory only supports kzalloc.

Convert the devm_kzalloc implementation to devm_kmalloc and remove the
complete memset to 0 but still set the initial struct devres header and
whatever padding before data to 0.

Add the other normal alloc variants as static inlines with __GFP_ZERO
added to the gfp flag where appropriate:

	devm_kzalloc
	devm_kcalloc
	devm_kmalloc_array

Add gfp.h to device.h for the newly added static inlines.

akpm: the current API forces us to replace kmalloc() with kzalloc() when
performing devm_ conversions.  This adds a relatively minor overhead.
More significantly, it will defeat kmemcheck used-uninitialized checking,
and for a particular driver, losing used-uninitialised checking for their
core controlling data structures will significantly degrade kmemcheck
usefulness.

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Sangjung Woo <sangjung.woo@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 64c862a839)
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-19 17:58:52 +01:00
Mark Brown
887191f9ae Merge remote-tracking branch 'lsk/v3.10/topic/configs' into linux-linaro-lsk 2014-05-18 18:45:52 +01:00
Mark Brown
f15a6a129d configs: Make cpufreq not set for RT
Not sure this is going to do the right thing but it fixes errors that
the CI sees.  Why isn't the RT testing just setting the performance
governor anyway?

Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-18 18:36:28 +01:00
Mark Brown
878a2cbd66 Merge remote-tracking branch 'lsk/v3.10/topic/arm64-perf' into linux-linaro-lsk 2014-05-18 15:03:45 +01:00
Mark Brown
1e835a464b Merge remote-tracking branch 'lsk/v3.10/topic/arm64-misc' into linux-linaro-lsk
Conflicts:
	arch/arm64/Kconfig
2014-05-18 15:03:39 +01:00
Vinayak Kale
429e821545 arm64: perf: add support for percpu pmu interrupt
Add support for irq registration when pmu interrupt is percpu.

Signed-off-by: Vinayak Kale <vkale@apm.com>
Signed-off-by: Tuan Phan <tphan@apm.com>
[will: tidied up cross-calling to pass &irq]
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

(cherry picked from commit 66aa8d6a14)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-18 15:01:08 +01:00
Vinayak Kale
cc096d68fd genirq: Add an accessor for IRQ_PER_CPU flag
This patch adds an accessor function for IRQ_PER_CPU flag.
The accessor function is useful to determine whether an IRQ is percpu or not.

This patch is based on an older patch posted by Chris Smith here [1].
There is a minor change w.r.t. Chris's original patch: The accessor function
is renamed as 'irq_is_percpu' instead of 'irq_is_per_cpu'.

[1]: http://lkml.indiana.edu/hypermail/linux/kernel/1207.3/02955.html

Signed-off-by: Chris Smith <chris.smith@st.com>
Signed-off-by: Vinayak Kale <vkale@apm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 7f4a8e7b19)
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-05-18 15:00:56 +01:00