summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2015-12-29arm64: dts: Fix to use standard DT node names for X-Gene 1 and X-Gene 2 ↵Duc Dang
platforms Use devicetree standard node name for I2C (i2c@...), GFC GPIO (gpio@...), DW GPIO (gpio@...), Standby GPIO (gpio@...). The DT node name of USB (dwusb@...) still needs to be kept to maintain backward compatibility with old firmware. Signed-off-by: Duc Dang <dhdang@apm.com>
2015-12-29MIPS: VDSO: Fix build error with binutils 2.24 and earlierGuenter Roeck
Commit 2a037f310bab ("MIPS: VDSO: Fix build error") tries to fix a build error seen with binutils 2.24 and earlier. However, the fix does not work, and again results in the already known build errors if the kernel is built with an earlier version of binutils. CC arch/mips/vdso/gettimeofday.o /tmp/ccnOVbHT.s: Assembler messages: /tmp/ccnOVbHT.s:50: Error: can't resolve `_start' {*UND* section} - `L0 {.text section} /tmp/ccnOVbHT.s:374: Error: can't resolve `_start' {*UND* section} - `L0 {.text section} scripts/Makefile.build:258: recipe for target 'arch/mips/vdso/gettimeofday.o' failed make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1 Fixes: 2a037f310bab ("MIPS: VDSO: Fix build error") Cc: Qais Yousef <qais.yousef@imgtec.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11926/ Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-12-29[PATCH] arm: fix handling of F_OFD_... in oabi_fcntl64()Al Viro
Cc: stable@vger.kernel.org # 3.15+ Reviewed-by: Jeff Layton <jeff.layton@primarydata.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2015-12-29x86/mm: Drop WARN from multi-BAR checkLaura Abbott
ioremapping multiple BARs produces a warning with a message "Your kernel is fine". This message mostly serves to comfort kernel developers. Users do not read the message, they only see the big scary warning which means something must be horribly broken with their system. Less dramatically, the warn also sets the taint flag which makes it difficult to differentiate problems. If the kernel is actually fine as the warning claims it doesn't make sense for it to be tainted. Change the WARN_ONCE to a pr_warn with the caller of the ioremap. Signed-off-by: Laura Abbott <labbott@fedoraproject.org> Link: http://lkml.kernel.org/r/1450728074-31029-1-git-send-email-labbott@fedoraproject.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-12-29x86/LDT: Print the real LDT base addressJan Beulich
This was meant to print base address and entry count; make it do so again. Fixes: 37868fe113ff "x86/ldt: Make modify_ldt synchronous" Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andy Lutomirski <luto@kernel.org> Link: http://lkml.kernel.org/r/56797D8402000078000C24F0@prv-mh.provo.novell.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-12-29arch/x86/kernel/ptrace.c: Remove unused arg_offs_tablechengang@emindsoft.com.cn
The related warning from gcc 6.0: arch/x86/kernel/ptrace.c:127:18: warning: ‘arg_offs_table’ defined but not used [-Wunused-const-variable] static const int arg_offs_table[] = { ^~~~~~~~~~~~~~ Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Link: http://lkml.kernel.org/r/1451137798-28701-1-git-send-email-chengang@emindsoft.com.cn Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-12-29ARM: dts: Unify G2D device node with other devices on exynos4Marek Szyprowski
G2D device is always available and doesn't depend on any external (board specific) peripherals, so it can be unconditionally enabled. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Add power domain to G2D device on exynos4210Marek Szyprowski
G2D device and it's SYSMMU belongs to LCD0 power domain on Exynos 4210, so add missing power-domains property to G2D device node (G2D's SYSMMU is already bound to LCD0 power domain). Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: MDMA1 device belongs to LCD0 power domain on exynos4210Marek Szyprowski
On Exynos 4210 MDMA1 device belongs to LCD0 power domain, so add proper power-domains property. On Exynos 4x12, it belongs to TOP power domain, which is always enabled, thus require no assignment in exynos4x12.dtsi. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Remove unneeded GPIO include in exynos4412-odroidu3Javier Martinez Canillas
The <dt-bindings/gpio/gpio.h> header is already included in the exynos4412-odroid-common DTSI so there's no need to do it again in the DTS file. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: exynos4210-universal_c210: Disable DMA for UARTsMarek Szyprowski
PDMA for UART devices seems not to be working properly on Exynos 4210 revision 0 used in Universal C210 boards, so disable it to let one to use UART devices (driver defaults to PIO mode if DMA is not present). Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Use peripheral mode for dwc3_1 on exynos5422-odroidxu3Marek Szyprowski
DWC3 device found on Exynos SoCs cannot work in OTG mode alone, because it lacks some OTG related control part. OTG mode operation is possible only with external hardware logic (usually GPIO-based) specific to the board. Right now, however, there is no driver for such logic and no bindings, so the OTG mode is dysfunctional at all (this means that it doesn't work as a peripheral nor as a host). This patch sets the operation mode to peripheral to get DWC3_1 device at least somehow working. This can be later updated, when proper OTG driver and bindings get developed. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Add rotator node on exynos5420Marek Szyprowski
This patch adds device node for Rotator device and it's SYSMMU to Exynos 542x device tree file. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Add rotator node on exynos5250Marek Szyprowski
This patch adds device node for Rotator device to Exynos 5250 device tree file. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Fix power domain for sysmmu-rotator device on exynos4Marek Szyprowski
Rotator device and it's SYSMMU belongs to different power domains on various Exynos4 SoC revisions: LCD0 for 4210 and TOP for 4x12. This patch fixes this by moving power-domains property to exynos4210.dtsi. TOP power domain is always enabled and it is not represented in DTS. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Add rotator nodes on exynos4Marek Szyprowski
This patch adds device node for Rotator device to Exynos 4210 and 4x12 device tree files. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Enable PRNG module on exynos4412-trats2Krzysztof Kozlowski
Enable Pseudo Random Number Generator (PRNG) on Trats2 board. This allows using hardware random number generator: $ echo exynos > /sys/class/misc/hw_random/rng_current Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Add PRNG module for exynos4Krzysztof Kozlowski
Add Pseudo Random Number Generator (PRNG) node of Security Sub System (SSS) to Exynos 4 DTSI. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Remove fimd node from exynos5422-odroidxu3-commonMarek Szyprowski
FIMD device is not used at all on Exynos5422-based Odroid XU3-lite and XU4. XU3 board theorethically can support FIMD with DisplayPort connector, but due to hw limitation/design it doesn't work in most cases. It is also not even enabled in XU3 dts file. FIMD node was enabled mainly due to limitation of early Exynos DRM driver, which didn't initialize properly when no FIMD device was available. This node can be now safely removed from XU3-common dtsi and added layer to Odroid XU3 dts, when Display Port driver gets enabled. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Mark eMMC as non-removable in exynos5250-snow-commonJavier Martinez Canillas
The eMMC is non-removable so mark it using the non-removable DT property to avoid having to redetect it after a suspend/resume. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Tested-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Remove broken-cd from eMMC node in exynos5420-peach-piJavier Martinez Canillas
The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Tested-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Remove broken-cd from eMMC node in exynos5800-peach-piJavier Martinez Canillas
The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Tested-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Mark SDIO as non-removable in exynos5250-snow-commonJavier Martinez Canillas
The Exynos5250 Snow Chromebooks have a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Tested-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Mark SDIO as non-removable in exynos5420-peach-pitJavier Martinez Canillas
The Exynos5420 Peach Pit Chromebook has a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-29ARM: dts: Mark SDIO as non-removable in exynos5800-peach-piJavier Martinez Canillas
The Exynos5800 Peach Pi Chromebook has a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2015-12-28Driver for IBM System i/p VNIC protocolThomas Falcon
This is a new device driver for a high performance SR-IOV assisted virtual network for IBM System p and IBM System i systems. The SR-IOV VF will be attached to the VIOS partition and mapped to the Linux client via the hypervisor's VNIC protocol that this driver implements. This driver is able to perform basic tx and rx, new features and improvements will be added as they are being developed and tested. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Signed-off-by: John Allen <jallen@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-27Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linusLinus Torvalds
Pull MIPS fixes from Ralf Baechle: - Fix bitrot in __get_user_unaligned() - EVA userspace accessor bug fixes. - Fix for build issues with certain toolchains. - Fix build error for VDSO with particular toolchain versions. - Fix build error due to a variable that should have been removed by an earlier patch * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Fix bitrot in __get_user_unaligned() MIPS: Fix build error due to unused variables. MIPS: VDSO: Fix build error MIPS: CPS: drop .set mips64r2 directives MIPS: uaccess: Take EVA into account in [__]clear_user MIPS: uaccess: Take EVA into account in __copy_from_user() MIPS: uaccess: Fix strlen_user with EVA
2015-12-27Merge tag 'armsoc-fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "A smallish set of fixes that we've been sitting on for a while now, flushing the queue here so they go in. Summary: A handful of fixes for OMAP, i.MX, Allwinner and Tegra: - A clock rate and a PHY setup fix for i.MX6Q/DL - A couple of fixes for the reduced serial bus (sunxi-rsb) on Allwinner - UART wakeirq fix for an OMAP4 board, timer config fixes for AM43XX. - Suspend fix for Tegra124 Chromebooks - Fix for missing implicit include that's different between ARM/ARM64" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: tegra: Fix suspend hang on Tegra124 Chromebooks bus: sunxi-rsb: Fix peripheral IC mapping runtime address bus: sunxi-rsb: Fix primary PMIC mapping hardware address ARM: dts: Fix UART wakeirq for omap4 duovero parlor ARM: OMAP2+: AM43xx: select ARM TWD timer ARM: OMAP2+: am43xx: enable GENERIC_CLOCKEVENTS_BROADCAST fsl-ifc: add missing include on ARM64 ARM: dts: imx6: Fix Ethernet PHY mode on Ventana boards ARM: dts: imx: Fix the assigned-clock mismatch issue on imx6q/dl bus: sunxi-rsb: unlock on error in sunxi_rsb_read() ARM: dts: sunxi: sun6i-a31s-primo81.dts: add touchscreen axis swapping property
2015-12-27MIPS: Fix bitrot in __get_user_unaligned()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-12-27powerpc/powernv: Fix minor off-by-one error in opal_mce_check_early_recovery()Andrew Donnellan
Fix off-by-one error in opal_mce_check_early_recovery() when checking whether the NIP falls within OPAL space. Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-27powerpc: Fix style of self-test config promptsAndrew Donnellan
A few of the config prompts for powerpc self-tests have periods at the end, which is inconsistent with the rest of the prompts. Remove the periods. Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-27powerpc/powernv: Only delay opal_rtc_read() retry when necessaryMichael Neuling
Only delay opal_rtc_read() when busy and are going to retry. This has the advantage of possibly saving a massive 10ms off booting! Kudos to Stewart for noticing. Signed-off-by: Michael Neuling <mikey@neuling.org> Reviewed-by: Stewart Smith <stewart@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-27powerpc/powernv: Add a kmsg_dumper that flushes console output on panicRussell Currey
On BMC machines, console output is controlled by the OPAL firmware and is only flushed when its pollers are called. When the kernel is in a panic state, it no longer calls these pollers and thus console output does not completely flush, causing some output from the panic to be lost. Output is only actually lost when the kernel is configured to not power off or reboot after panic (i.e. CONFIG_PANIC_TIMEOUT is set to 0) since OPAL flushes the console buffer as part of its power down routines. Before this patch, however, only partial output would be printed during the timeout wait. This patch adds a new kmsg_dumper which gets called at panic time to ensure panic output is not lost. It accomplishes this by calling OPAL_CONSOLE_FLUSH in the OPAL API, and if that is not available, the pollers are called enough times to (hopefully) completely flush the buffer. The flushing mechanism will only affect output printed at and before the kmsg_dump call in kernel/panic.c:panic(). As such, the "end Kernel panic" message may still be truncated as follows: >Call Trace: >[c000000f1f603b00] [c0000000008e9458] dump_stack+0x90/0xbc (unreliable) >[c000000f1f603b30] [c0000000008e7e78] panic+0xf8/0x2c4 >[c000000f1f603bc0] [c000000000be4860] mount_block_root+0x288/0x33c >[c000000f1f603c80] [c000000000be4d14] prepare_namespace+0x1f4/0x254 >[c000000f1f603d00] [c000000000be43e8] kernel_init_freeable+0x318/0x350 >[c000000f1f603dc0] [c00000000000bd74] kernel_init+0x24/0x130 >[c000000f1f603e30] [c0000000000095b0] ret_from_kernel_thread+0x5c/0xac >---[ end Kernel panic - not This functionality is implemented as a kmsg_dumper as it seems to be the most sensible way to introduce platform-specific functionality to the panic function. Signed-off-by: Russell Currey <ruscur@russell.cc> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-27powerpc: Copy only required pieces of the mm_context_t to the pacaMichael Neuling
Currently we copy the whole mm_context_t to the paca but only access a few bits of it. This is wasteful of space paca and also takes quite some time in the hot path of context switching. This patch pulls in only the required bits from the mm_context_t to the paca and on context switch, copies only those. Benchmarking this (On top of Anton's recent MSR context switching changes [1]) using processes and yield shows an improvement of almost 3% on POWER8: http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield --process 0 0 1. https://lists.ozlabs.org/pipermail/linuxppc-dev/2015-October/135700.html Signed-off-by: Michael Neuling <mikey@neuling.org> [mpe: Rename paca fields to be mm_ctx_foo rather than context_foo] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-26Merge tag 'arc-4.4-rc7-fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: "Sorry for this late pull request, but these are all important fixes for code introduced/updated in this release which we will otherwise end up back porting. - Unwinder rework (A revert followed by better fix) - Build errors: MMUv2, modules with -Os - highmem section mismatch build splat" * tag 'arc-4.4-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: dw2 unwind: Catch Dwarf SNAFUs early ARC: dw2 unwind: Don't bail for CIE.version != 1 Revert "ARC: dw2 unwind: Ignore CIE version !=1 gracefully instead of bailing" ARC: Fix linking errors with CONFIG_MODULE + CONFIG_CC_OPTIMIZE_FOR_SIZE ARC: mm: fix building for MMU v2 ARC: mm: HIGHMEM: Fix section mismatch splat
2015-12-26ARM: bcm2835: Add Kconfig support for bcm2836Eric Anholt
This should be a complete port of bcm2835 functionality to bcm2836 (Raspberry Pi 2). Signed-off-by: Eric Anholt <eric@anholt.net>
2015-12-25Merge branch 'parisc-4.4-4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc system call restart fix from Helge Deller: "The architectural design of parisc always uses two instructions to call kernel syscalls (delayed branch feature). This means that the instruction following the branch (located in the delay slot of the branch instruction) is executed before control passes to the branch destination. Depending on which assembler instruction and how it is used in usersapce in the delay slot, this sometimes made restarted syscalls like futex() and poll() failing with -ENOSYS" * 'parisc-4.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Fix syscall restarts
2015-12-25Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparcLinus Torvalds
Pull sparc fixes from David Miller: 1) Finally make perf stack backtraces stable on sparc, several problems (mostly due to the context in which the user copies from the stack are done) contributed to this. From Rob Gardner. 2) Export ADI capability if the cpu supports it. 3) Hook up userfaultfd system call. 4) When faults happen during user copies we really have to clean up and restore the FPU state fully. Also from Rob Gardner * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: tty/serial: Skip 'NULL' char after console break when sysrq enabled sparc64: fix FP corruption in user copy functions sparc64: Perf should save/restore fault info sparc64: Ensure perf can access user stacks sparc64: Don't set %pil in rtrap_nmi too early sparc64: Add ADI capability to cpu capabilities tty: serial: constify sunhv_ops structs sparc: Hook up userfaultfd system call
2015-12-24sparc64: fix FP corruption in user copy functionsRob Gardner
Short story: Exception handlers used by some copy_to_user() and copy_from_user() functions do not diligently clean up floating point register usage, and this can result in a user process seeing invalid values in floating point registers. This sometimes makes the process fail. Long story: Several cpu-specific (NG4, NG2, U1, U3) memcpy functions use floating point registers and VIS alignaddr/faligndata to accelerate data copying when source and dest addresses don't align well. Linux uses a lazy scheme for saving floating point registers; It is not done upon entering the kernel since it's a very expensive operation. Rather, it is done only when needed. If the kernel ends up not using FP regs during the course of some trap or system call, then it can return to user space without saving or restoring them. The various memcpy functions begin their FP code with VISEntry (or a variation thereof), which saves the FP regs. They conclude their FP code with VISExit (or a variation) which essentially marks the FP regs "clean", ie, they contain no unsaved values. fprs.FPRS_FEF is turned off so that a lazy restore will be triggered when/if the user process accesses floating point regs again. The bug is that the user copy variants of memcpy, copy_from_user() and copy_to_user(), employ an exception handling mechanism to detect faults when accessing user space addresses, and when this handler is invoked, an immediate return from the function is forced, and VISExit is not executed, thus leaving the fprs register in an indeterminate state, but often with fprs.FPRS_FEF set and one or more dirty bits. This results in a return to user space with invalid values in the FP regs, and since fprs.FPRS_FEF is on, no lazy restore occurs. This bug affects copy_to_user() and copy_from_user() for NG4, NG2, U3, and U1. All are fixed by using a new exception handler for those loads and stores that are done during the time between VISEnter and VISExit. n.b. In NG4memcpy, the problematic code can be triggered by a copy size greater than 128 bytes and an unaligned source address. This bug is known to be the cause of random user process memory corruptions while perf is running with the callgraph option (ie, perf record -g). This occurs because perf uses copy_from_user() to read user stacks, and may fault when it follows a stack frame pointer off to an invalid page. Validation checks on the stack address just obscure the underlying problem. Signed-off-by: Rob Gardner <rob.gardner@oracle.com> Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-24sparc64: Perf should save/restore fault infoRob Gardner
There have been several reports of random processes being killed with a bus error or segfault during userspace stack walking in perf. One of the root causes of this problem is an asynchronous modification to thread_info fault_address and fault_code, which stems from a perf counter interrupt arriving during kernel processing of a "benign" fault, such as a TSB miss. Since perf_callchain_user() invokes copy_from_user() to read user stacks, a fault is not only possible, but probable. Validity checks on the stack address merely cover up the problem and reduce its frequency. The solution here is to save and restore fault_address and fault_code in perf_callchain_user() so that the benign fault handler is not disturbed by a perf interrupt. Signed-off-by: Rob Gardner <rob.gardner@oracle.com> Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-24sparc64: Ensure perf can access user stacksRob Gardner
When an interrupt (such as a perf counter interrupt) is delivered while executing in user space, the trap entry code puts ASI_AIUS in %asi so that copy_from_user() and copy_to_user() will access the correct memory. But if a perf counter interrupt is delivered while the cpu is already executing in kernel space, then the trap entry code will put ASI_P in %asi, and this will prevent copy_from_user() from reading any useful stack data in either of the perf_callchain_user_X functions, and thus no user callgraph data will be collected for this sample period. An additional problem is that a fault is guaranteed to occur, and though it will be silently covered up, it wastes time and could perturb state. In perf_callchain_user(), we ensure that %asi contains ASI_AIUS because we know for a fact that the subsequent calls to copy_from_user() are intended to read the user's stack. [ Use get_fs()/set_fs() -DaveM ] Signed-off-by: Rob Gardner <rob.gardner@oracle.com> Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-24sparc64: Don't set %pil in rtrap_nmi too earlyRob Gardner
Commit 28a1f53 delays setting %pil to avoid potential hardirq stack overflow in the common rtrap_irq path. Setting %pil also needs to be delayed in the rtrap_nmi path for the same reason. Signed-off-by: Rob Gardner <rob.gardner@oracle.com> Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-24sparc64: Add ADI capability to cpu capabilitiesKhalid Aziz
Add ADI (Application Data Integrity) capability to cpu capabilities list. ADI capability allows virtual addresses to be encoded with a tag in bits 63-60. This tag serves as an access control key for the regions of virtual address with ADI enabled and a key set on them. Hypervisor encodes this capability as "adp" in "hwcap-list" property in machine description. Signed-off-by: Khalid Aziz <khalid.aziz@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-12-24ARM: DTS: da850: Enable DMA for SPI1Peter Ujfalusi
Add the needed bindings so the SPI driver can use DMA with SPI1. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-24ARM: DTS: da850: Add node for mmc1Peter Ujfalusi
da850 has two MMC controller, MMCSD1 is served by eDMA1 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-24ARM: DTS: da850: Enable DMA use for MMC0Peter Ujfalusi
Add the needed bindings for MMC0 in order to be able to utilize the DMA instead of PIO mode. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-24ARM: DTS: da850: Enable eDMA1Peter Ujfalusi
The eDMA1 in da850 has only one TPTC and for example MMC1 is HW events are handled by it. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-24ARM: DTS: da850: Use the new DT bindings for the eDMA3Peter Ujfalusi
Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3. With the new bindings boards can customize and tweak the DMA channel priority to match their needs. With the new binding the memcpy is safe to be used since with the old binding it was not possible for a driver to know which channel is allowed to be used as non HW triggered channel. Using the new binding will allow us to reserve PaRAM slots to be used by the DSP which was not possible before and prevented the da850 boards to be moved to DT only. Note that the DMA memcpy is disabled, it can be enabled by reserving channels for memcpy by adding the following property to the edma node: ti,edma-memcpy-channels = <20 21>; /* Reserving channel 20 and 21 for memcpy */ Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-24ARM: DTS: da850: fix edma0 reg spacePeter Ujfalusi
The size of the eDMA0 CC register space is 0x8000 and not 0x10000. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Sushaanth Srirangapathi <sushaanth.s@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2015-12-23powerpc/mpc85xx: Add TMU device tree support for T1023/T1024Hongtao Jia
Also add nodes and properties for thermal management support. Meanwhile preprocessor support is needed using thermal of framework. Signed-off-by: Jia Hongtao <hongtao.jia@freescale.com> Reviewed-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>