summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2013-06-21Merge branch 'armsoc/for-3.11/cleanups' of ↵Arnd Bergmann
git://github.com/broadcom/bcm11351 into next/cleanup From Christian Daudt: * 'armsoc/for-3.11/cleanups' of git://github.com/broadcom/bcm11351: ARM: bcm281xx: Remove init_irq declaration in machine description Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20ARM: picoxcell: remove .nr_irqs referenceArnd Bergmann
A recent cleanup caused build errors in some configurations because the header defining NR_IRQS_LEGACY is not included here. Since that value is the default, we can just as well leave it out. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Jamie Iles <jamie@jamieiles.com>
2013-06-20ARM: s5p64x0: avoid build warning for uncompress.hArnd Bergmann
Commit 5336539 "ARM: S5P64X0: Use common uncompress.h part for plat-samsung" was missing a type cast, this brings it in line with the other samsung platforms. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'samsung-cleanup-1' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/cleanup From Kukjin Kim: - Consolidate uncompress subroutines and s5p64x0-uncompress - Cleanup watchdog support on Samsung to support multiplatform * tag 'samsung-cleanup-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: SAMSUNG: Remove unused plat/regs-watchdog.h header ARM: SAMSUNG: Remove legacy watchdog reset code ARM: SAMSUNG: Let platforms use the new watchdog reset driver ARM: SAMSUNG: Add watchdog reset driver ARM: SAMSUNG: Use local definitions of watchdog registers watchdog: s3c2410_wdt: Use local register definitions ARM: S5P64X0: Use common uncompress.h part for plat-samsung ARM: SAMSUNG: Consolidate uncompress subroutine Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'omap-for-v3.11/dma-signed' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren: Non-critical omap DMA fixes and removal of unused legacy code. * tag 'omap-for-v3.11/dma-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP1: Remove dma.h ARM: OMAP1: Remove legacy irda.h and irda setup from board files ARM: OMAP1: Remove duplicated DMA channel definitions ARM: OMAP1: Remove McBSP DMA channel definitions ARM: OMAP2+: Remove dma.h ARM: OMAP2+: hwmod: Remove remaining DMA channel definitions ARM: OMAP2+: Remove duplicated DMA channel definitions ARM: OMAP2+: Remove AES crypto device DMA channel definitions ARM: OMAP: dma: Remove the erroneous freeing of platform data ARM: OMAP: dma: Fix the dma_chan_link_map init order ARM: OMAP: dma: Remove the wrong dev_id check Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'omap-for-v3.11/pm-voltdomain-signed' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren: PM voltage domain clean-up via Kevin Hilman <khilman@linaro.org>: OMAP: PM: remove requirement for voltage domain data; remove dummy data * tag 'omap-for-v3.11/pm-voltdomain-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: AM33xx: Remove the unused voltagedomain data ARM: OMAP2+: Powerdomain: Remove the need to always have a voltdm associated to a pwrdm Includes an update to Linux 3.10-rc6. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'omap-for-v3.11/pm-serial-signed' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren: Serial driver platform init code clean-up via Kevin Hilman <khilman@linaro.org>: OMAP: PM: the serial core + driver can no handle no_console_suspend support without any SoC specific handlding or SoC-specific DT bindings. Remove the now unused SoC specifics for OMAP. * tag 'omap-for-v3.11/pm-serial-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: arm: omap2+: omap_device: remove no_idle_on_suspend arm: dts: am33xx: Remove "ti,no_idle_on_suspend" property. arm: omap2+: serial: remove no_console_suspend support Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge branch 'picoxcell-next' of git://github.com/jamieiles/linux-2.6-ji ↵Arnd Bergmann
into next/cleanup From Jamie Iles: * 'picoxcell-next' of git://github.com/jamieiles/linux-2.6-ji: ARM: picoxcell: Remove init_irq declaration in machine description picoxcell: remove redundant common.h Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20Merge tag 'at91-cleanup' of git://github.com/at91linux/linux-at91 into ↵Arnd Bergmann
next/cleanup From Nicolas Ferre: One old board removal. * tag 'at91-cleanup' of git://github.com/at91linux/linux-at91: ARM: at91: drop rm9200dk board support Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-19Merge tag 'zynq-cleanup-for-3.11' of git://git.xilinx.com/linux-xlnx into ↵Arnd Bergmann
next/cleanup From Michal Simek: arm: Xilinx Zynq cleanup patches for v3.11 This branch contains two fixes: - Fix zynq smp code - Do not specify init_irq ptr * tag 'zynq-cleanup-for-3.11' of git://git.xilinx.com/linux-xlnx: ARM: zynq: Not to rewrite jump code when starting address is 0x0 ARM: zynq: Remove init_irq declaration in machine description Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-18ARM: SAMSUNG: Remove unused plat/regs-watchdog.h headerTomasz Figa
Since there are no remaining users of this header, it can be safely dropped. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: SAMSUNG: Remove legacy watchdog reset codeTomasz Figa
Since all platforms have been moved to the new watchdog reset driver, the legacy code can be removed safely. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: SAMSUNG: Let platforms use the new watchdog reset driverTomasz Figa
This patch moves all platforms using the legacy watchdog reset helper function to the new watchdog reset driver. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: SAMSUNG: Add watchdog reset driverTomasz Figa
This patch adds a watchdog reset driver that can be used on Samsung SoCs that do not provide dedicated reset method. It replaces the legacy helper function that relies on static IO mapping. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: SAMSUNG: Use local definitions of watchdog registersTomasz Figa
This patch adds local definitions of required watchdog registers and bitfields to the uncompress header, allowing to remove the dependency on plat/regs-watchdog.h header and the ugly hack to replace virtual with physical addresses. In addition, it fixes reboot on decompression failure feature, due to the mentioned ugly hack not working anymore (the macro being redefined got renamed, without fixing this code). Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: S5P64X0: Use common uncompress.h part for plat-samsungTomasz Figa
Since uart_base can be set dynamically in arch_detect_cpu(), there is no need to have a copy of all code locally, just to override UART base address. This patch removes any duplicate code in uncompress.h variant of s5p64x0 and implements proper arch_detect_cpu() function to initialize UART with SoC-specific parameters. While at it, replace hard-coded register address with macro. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: SAMSUNG: Consolidate uncompress subroutineTushar Behera
For mach-exynos, uart_base is a pointer and the value is calculated in the machine folder. For other machines, uart_base is defined as a macro in platform directory. For symmetry, the uart_base macro definition is removed and the uart_base calculation is moved to specific machine folders. This would help us consolidating uncompress subroutine for s5p64x0. Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-06-18ARM: at91: drop rm9200dk board supportJean-Christophe PLAGNIOL-VILLARD
This board is impossible to found anymore. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2013-06-18ARM: dts: msm: Fix merge resolutionDavid Brown
Commit e45600107b (Merge tag 'msm-cleanup-for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm into next/cleanup) incorrectly resolved a merge conflict, resulting in a node address that doesn't match the register address. Fix this node address. Signed-off-by: David Brown <davidb@codeaurora.org> Cc: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-18ARM: OMAP1: Remove dma.hJarkko Nikula
Add definitions in arch/arm/mach-omap1/dma.h are now removed so remove the file and include statements from dma.c and lcd_dma.c. Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP1: Remove legacy irda.h and irda setup from board filesJarkko Nikula
omap-ir.c driver has never been upstream and was also removed from linux-omap.git four years ago (See linux-omap.git commit efd1e3f ("REMOVE OMAP LEGACY CODE: Reset drivers/net/irda to mainline")). Therefore remove needless device registration from a few board files and delete thus to be unused arch/arm/mach-omap1/include/mach/irda.h and unused OMAP_DMA_UART3_* definitions from dma.h. Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP1: Remove duplicated DMA channel definitionsJarkko Nikula
Similarly than with OMAP2 there are many DMA channel definitions that have been moved or redefined in drivers using them and we can remove them from dma.h. There is exception with MMC that arch/arm/mach-omap1/devices.c is using MMC DMA channel definitions for setting platform data but those can be well replaced with numeric values. Remove dma.h include from arch/arm/mach-omap1/devices.c and use a script below for dropping duplicated definitions and for replacing definitions with DMA channel numbers. grep '#define OMAP_DMA' arch/arm/mach-omap1/dma.h | while read -r i; do \ DDEF=`echo $i |cut -d ' ' -f 1-2`; \ DEF=`echo $DDEF |cut -d ' ' -f 2`; \ CH=`echo $i |cut -d ' ' -f 3`; \ if [ `git grep -c "$DDEF" |wc -l` -gt 1 ]; then \ echo "removing" $DEF; \ sed -i "s/${DEF}/${CH}/" arch/arm/mach-omap1/devices.c; \ sed -i "/${DDEF}/d" arch/arm/mach-omap1/dma.h; \ fi; \ done Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP1: Remove McBSP DMA channel definitionsJarkko Nikula
arch/arm/mach-omap1/mcbsp.c is only place where OMAP1 McBSP DMA channel definitions are set. We may well use numerical values there and get rid of their definitions in arch/arm/mach-omap1/dma.h. Remove dma.h include from arch/arm/mach-omap1/mcbsp.c and use following script for replacing definitions with DMA channel number: egrep '#define OMAP_DMA_MCBSP' arch/arm/mach-omap1/dma.h | cut -f 1,3 \ | while read i; do \ DEF=`echo $i |cut -d ' ' -f 2`; \ CH=`echo $i |cut -d ' ' -f 3`; \ echo "removing" $DEF; \ sed -i "s/${DEF}/${CH}/" arch/arm/mach-omap1/mcbsp.c; \ sed -i "/${DEF}/d" arch/arm/mach-omap1/dma.h; \ done Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP2+: Remove dma.hJarkko Nikula
All definitions in arch/arm/mach-omap2/dma.h are removed so it can be removed now. Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP2+: hwmod: Remove remaining DMA channel definitionsJarkko Nikula
Last remaining DMA channel definitions in arch/arm/mach-omap2/dma.h are used only by omap_hwmod_2xxx_3xxx_ipblock_data.c and omap_hwmod_3xxx_data.c. Remove them by using directly DMA channel number in hwmod data and drop definitions with a following script: egrep '#define [OMAP|AM35XX].*DMA' arch/arm/mach-omap2/dma.h | cut -f 1,3 \ | while read i; do \ DEF=`echo $i |cut -d ' ' -f 2`; \ CH=`echo $i |cut -d ' ' -f 3`; \ echo "removing" $DEF; \ sed -i "s/${DEF}/${CH}/" arch/arm/mach-omap2/omap_hwmod_*.c; \ sed -i "/${DEF}/d" arch/arm/mach-omap2/dma.h; \ done Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP2+: Remove duplicated DMA channel definitionsJarkko Nikula
Many DMA channel definitions in arch/arm/mach-omap2/dma.h have been moved or redefined in drivers without removing them from dma.h. Remove those with a script below: egrep '#define OMAP.*DMA' arch/arm/mach-omap2/dma.h \ |cut -f 1 |cut -d ' ' -f 1-2 | while read -r i; do \ if [ `git grep -c "$i" |wc -l` -gt 1 ]; then \ echo "removing" $i; \ sed -i "/${i}/d" arch/arm/mach-omap2/dma.h; \ fi; \ done Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP2+: Remove AES crypto device DMA channel definitionsJarkko Nikula
These became unused after commit 660ffd6 ("ARM: OMAP2xxx: hwmod: Convert AES crypto devcie data to hwmod"). Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP: dma: Remove the erroneous freeing of platform dataRajendra Nayak
Given p = pdev->dev.platform_data; and d = p->dma_attr; the freeing of either one of these by the driver seems just plain wrong. Get rid of them in the .probe failure path as well as the .remove. Signed-off-by: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP: dma: Fix the dma_chan_link_map init orderR Sricharan
Init dma_chan_link_map[lch] *after* its memset to 0. Signed-off-by: R Sricharan <r.sricharan@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-18ARM: OMAP: dma: Remove the wrong dev_id checkR Sricharan
Once a free channel is found, the check for dev_id == 0 does not make any sense. Get rid of it. Signed-off-by: R Sricharan <r.sricharan@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-06-17ARM: AM33xx: Remove the unused voltagedomain dataRajendra Nayak
Now that there is a way to tell the powerdomain core about missing voltage domain auto-scaling control in SoCs', get rid of the dummy voltage domain data populated for AM33xx devices. Acked-by: Nishanth Menon <nm@ti.com> Acked-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Afzal Mohammed <afzal@ti.com> # am335x evm Signed-off-by: Kevin Hilman <khilman@linaro.org>
2013-06-17ARM: OMAP2+: Powerdomain: Remove the need to always have a voltdm associated ↵Rajendra Nayak
to a pwrdm The powerdomain framework currently expects all powerdomains to be associated with a corresponding voltagedomain. For some SoCs' (like the already existing AM33xx family, or for the upcoming AM437x and DRA7 SoCs') which do not have a Voltage controller/Voltage Processor (neither the SR I2C bus to communicate with the PMIC) there is no need for a Powerdomain to have a voltage domain association since there is no auto-scaling of voltages possible using the voltage FSM. Extend the arch operations to add an api which the powerdomain core can then use to identify if a voltdm lookup and association for a powerdomain is really needed. Acked-by: Nishanth Menon <nm@ti.com> Acked-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Afzal Mohammed <afzal@ti.com> # am335x evm Signed-off-by: Kevin Hilman <khilman@linaro.org>
2013-06-17ARM: zynq: Not to rewrite jump code when starting address is 0x0Michal Simek
This configuration is used by remoteproc. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2013-06-15Merge tag 'fixes-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "These are a little later than I planned on since I got caught up with handling merges for 3.11 most of the week. Another week, another batch of fixes for arm-soc platforms. Again, nothing controversial. A few more than would be ideal, but all are valid fixes. In particular the prima2 panic patch is critical since it fixes a problem where multiplatform kernels panic on all but prima2 hardware." * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: SAMSUNG: pm: Adjust for pinctrl- and DT-enabled platforms ARM: prima2: fix incorrect panic usage arm: mvebu: armada-xp-{gp,openblocks-ax3-4}: specify PCIe range ARM: Kirkwood: handle mv88f6282 cpu in __kirkwood_variant(). ARM: omap3: clock: fix wrong container_of in clock36xx.c ARM: dts: OMAP5: Fix missing PWM capability to timer nodes ARM: dts: omap4-panda|sdp: Fix mux for twl6030 IRQ pin and msecure line ARM: dts: AM33xx: Fix properties on gpmc node arm: omap2: fix AM33xx hwmod infos for UART2 ARM: OMAP3: Fix iva2_pwrdm settings for 3703
2013-06-15Merge branch 'merge' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc Pull powerpc fixes from Benjamin Herrenschmidt: "So here are 3 fixes still for 3.10. Fixes are simple, bugs are nasty (though not recent regressions, nasty enough) and all targeted at stable" * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc: Fix missing/delayed calls to irq_work powerpc: Fix emulation of illegal instructions on PowerNV platform powerpc: Fix stack overflow crash in resume_kernel when ftracing
2013-06-15powerpc: Fix missing/delayed calls to irq_workBenjamin Herrenschmidt
When replaying interrupts (as a result of the interrupt occurring while soft-disabled), in the case of the decrementer, we are exclusively testing for a pending timer target. However we also use decrementer interrupts to trigger the new "irq_work", which in this case would be missed. This change the logic to force a replay in both cases of a timer boundary reached and a decrementer interrupt having actually occurred while disabled. The former test is still useful to catch cases where a CPU having been hard-disabled for a long time completely misses the interrupt due to a decrementer rollover. CC: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Tested-by: Steven Rostedt <rostedt@goodmis.org>
2013-06-15powerpc: Fix emulation of illegal instructions on PowerNV platformPaul Mackerras
Normally, the kernel emulates a few instructions that are unimplemented on some processors (e.g. the old dcba instruction), or privileged (e.g. mfpvr). The emulation of unimplemented instructions is currently not working on the PowerNV platform. The reason is that on these machines, unimplemented and illegal instructions cause a hypervisor emulation assist interrupt, rather than a program interrupt as on older CPUs. Our vector for the emulation assist interrupt just calls program_check_exception() directly, without setting the bit in SRR1 that indicates an illegal instruction interrupt. This fixes it by making the emulation assist interrupt set that bit before calling program_check_interrupt(). With this, old programs that use no-longer implemented instructions such as dcba now work again. CC: <stable@vger.kernel.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-06-15powerpc: Fix stack overflow crash in resume_kernel when ftracingMichael Ellerman
It's possible for us to crash when running with ftrace enabled, eg: Bad kernel stack pointer bffffd12 at c00000000000a454 cpu 0x3: Vector: 300 (Data Access) at [c00000000ffe3d40] pc: c00000000000a454: resume_kernel+0x34/0x60 lr: c00000000000335c: performance_monitor_common+0x15c/0x180 sp: bffffd12 msr: 8000000000001032 dar: bffffd12 dsisr: 42000000 If we look at current's stack (paca->__current->stack) we see it is equal to c0000002ecab0000. Our stack is 16K, and comparing to paca->kstack (c0000002ecab3e30) we can see that we have overflowed our kernel stack. This leads to us writing over our struct thread_info, and in this case we have corrupted thread_info->flags and set _TIF_EMULATE_STACK_STORE. Dumping the stack we see: 3:mon> t c0000002ecab0000 [c0000002ecab0000] c00000000002131c .performance_monitor_exception+0x5c/0x70 [c0000002ecab0080] c00000000000335c performance_monitor_common+0x15c/0x180 --- Exception: f01 (Performance Monitor) at c0000000000fb2ec .trace_hardirqs_off+0x1c/0x30 [c0000002ecab0370] c00000000016fdb0 .trace_graph_entry+0xb0/0x280 (unreliable) [c0000002ecab0410] c00000000003d038 .prepare_ftrace_return+0x98/0x130 [c0000002ecab04b0] c00000000000a920 .ftrace_graph_caller+0x14/0x28 [c0000002ecab0520] c0000000000d6b58 .idle_cpu+0x18/0x90 [c0000002ecab05a0] c00000000000a934 .return_to_handler+0x0/0x34 [c0000002ecab0620] c00000000001e660 .timer_interrupt+0x160/0x300 [c0000002ecab06d0] c0000000000025dc decrementer_common+0x15c/0x180 --- Exception: 901 (Decrementer) at c0000000000104d4 .arch_local_irq_restore+0x74/0xa0 [c0000002ecab09c0] c0000000000fe044 .trace_hardirqs_on+0x14/0x30 (unreliable) [c0000002ecab0fb0] c00000000016fe3c .trace_graph_entry+0x13c/0x280 [c0000002ecab1050] c00000000003d038 .prepare_ftrace_return+0x98/0x130 [c0000002ecab10f0] c00000000000a920 .ftrace_graph_caller+0x14/0x28 [c0000002ecab1160] c0000000000161f0 .__ppc64_runlatch_on+0x10/0x40 [c0000002ecab11d0] c00000000000a934 .return_to_handler+0x0/0x34 --- Exception: 901 (Decrementer) at c0000000000104d4 .arch_local_irq_restore+0x74/0xa0 ... and so on __ppc64_runlatch_on() is called from RUNLATCH_ON in the exception entry path. At that point the irq state is not consistent, ie. interrupts are hard disabled (by the exception entry), but the paca soft-enabled flag may be out of sync. This leads to the local_irq_restore() in trace_graph_entry() actually enabling interrupts, which we do not want. Because we have not yet reprogrammed the decrementer we immediately take another decrementer exception, and recurse. The fix is twofold. Firstly make sure we call DISABLE_INTS before calling RUNLATCH_ON. The badly named DISABLE_INTS actually reconciles the irq state in the paca with the hardware, making it safe again to call local_irq_save/restore(). Although that should be sufficient to fix the bug, we also mark the runlatch routines as notrace. They are called very early in the exception entry and we are asking for trouble tracing them. They are also fairly uninteresting and tracing them just adds unnecessary overhead. [ This regression was introduced by fe1952fc0afb9a2e4c79f103c08aef5d13db1873 "powerpc: Rework runlatch code" by myself --BenH ] CC: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-06-15Merge tag 'sunxi-core-for-3.11' of git://github.com/mripard/linux into ↵Olof Johansson
next/cleanup From Maxime Ripard: Allwinner SoCs platform additions for 3.11 - Various cleanups and documentation updates * tag 'sunxi-core-for-3.11' of git://github.com/mripard/linux: ARM: sunxi: irqchip: Update the documentation ARM: sunxi: Update datasheet documentation ARM: sunxi: Remove init_irq declaration in machine description Signed-off-by: Olof Johansson <olof@lixom.net> #
2013-06-15Merge tag 'msm-cleanup-for-3.11' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm into next/cleanup From David Brown: Cleanups for MSM for 3.11 These are a handful of cleanups to the MSM tree. The gpio cleanups get us closer to having proper pinmux and gpio support. * tag 'msm-cleanup-for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm: mfd: ssbi: Use devm_* and simplify code gpio: msm: Add device tree and irqdomain support for gpio-msm-v2 ARM: msm: Remove gpiomux-v2 and re-organize MSM_GPIOMUX configs msm: iomap: Remove unused bases and mappings msm: Remove unused file core.h ARM: msm: Remove init_irq declaration in machine description Signed-off-by: Olof Johansson <olof@lixom.net> Conflicts: arch/arm/boot/dts/msm8660-surf.dts arch/arm/boot/dts/msm8960-cdp.dts
2013-06-15Merge tag 'msm-fix-for-3.11' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm into next/cleanup From David Brown: Some minor fixes for MSM for 3.11 I don't expect these to be necessary for stable, since the fixes are to recently added code. The strncpy fix is only in debug code that isn't normally compiled or used (and is being removed in upcoming patches). * tag 'msm-fix-for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm: gpio: msm-v1: Remove errant __devinit to fix compile mfd: ssbi: Add MODULE_DEVICE_TABLE ARM: dts: msm: Fix bad register addresses arch: arm: mach-msm: using strlcpy instead of strncpy Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'omap-for-v3.11/cleanup-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren: Move omap4 over to device tree based booting. This allows us to get rid a big pile of platform init code for things that are already handled by device tree related code. As am33xx is already device tree based, we can also remove the same data for am33xx. * tag 'omap-for-v3.11/cleanup-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP4: hwmod data: Remove irq entries from mcspi, mmc hwmods ARM: OMAP4: hwmod data: add DSS data back ARM: OMAP4: hwmod data: Clean up the data file ARM: AM33XX: hwmod data: irq, dma and addr info clean up ARM: OMAP2+: Remove omap4 ocp2scp pdata ARM: OMAP2+: Remove omap4 pdata for USB ARM: OMAP2+: Remove omap4 pdata from hsmmc.c ARM: OMAP2+: Remove legacy mux data for omap4 ARM: OMAP2+: Remove board-omap4panda.c ARM: OMAP2+: Remove board-4430sdp.c ARM: OMAP2+: Legacy support for wl12xx when booted with devicetree Resolved merge conflict due to a fix for 3.10 (the fix is removed since the code is no longer used -- data comes from device tree). Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-14Merge tag 'omap-for-v3.10/fixes-v3.10-rc4' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup Pulling in a set of fixes from Tony Lindgren to resolve conflicts with later cleanup branch: A set of small fixes for omaps for the -rc cycle: - am7303 iva2 reset PM regression fix - am33xx uart2 dma channel fix - am33xx gpmc properties fix - omap44xx rtc wake-up mux fix for nirq pins - omap36xx clock divider restore fix There's also one tiny non-critical .dts fix for omap5 timer pwm properties. * tag 'omap-for-v3.10/fixes-v3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: omap3: clock: fix wrong container_of in clock36xx.c ARM: dts: OMAP5: Fix missing PWM capability to timer nodes ARM: dts: omap4-panda|sdp: Fix mux for twl6030 IRQ pin and msecure line ARM: dts: AM33xx: Fix properties on gpmc node arm: omap2: fix AM33xx hwmod infos for UART2 + Linux 3.10-rc4 Signed-off-by: Olof Johansson <olof@lixom.net>
2013-06-13Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linuxLinus Torvalds
Pull device tree bug fixes from Grant Likely: "This branch contains the following bug fixes: - Fix locking vs. interrupts. Bug caught by lockdep checks - Fix parsing of cpp #line directive output by dtc - Fix 'make clean' for dtc temporary files. There is also a commit that regenerates the dtc lexer and parser files with Bison 2.5. The only purpose of this commit is to separate the functional change in the dtc bug fix from the code generation change caused by a different Bison version" * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux: dtc: ensure #line directives don't consume data from the next line dtc: Update generated files to output from Bison 2.5 of: Fix locking vs. interrupts kbuild: make sure we clean up DTB temporary files
2013-06-13of: Fix locking vs. interruptsBenjamin Herrenschmidt
The OF code uses irqsafe locks everywhere except in a handful of functions for no obvious reasons. Since the conversion from the old rwlocks, this now triggers lockdep warnings when used at interrupt time. At least one driver (ibmvscsi) seems to be doing that from softirq context. This converts the few non-irqsafe locks into irqsafe ones, making them consistent with the rest of the code. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Grant Likely <grant.likely@linaro.org>
2013-06-13Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Peter Anvin: "Another set of fixes, the biggest bit of this is yet another tweak to the UEFI anti-bricking code; apparently we finally got some feedback from Samsung as to what makes at least their systems fail. This set should actually fix the boot regressions that some other systems (e.g. SGI) have exhibited. Other than that, there is a patch to avoid a panic with particularly unhappy memory layouts and two minor protocol fixes which may or may not be manifest bugs" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Fix typo in kexec register clearing x86, relocs: Move __vvar_page from S_ABS to S_REL Modify UEFI anti-bricking code x86: Fix adjust_range_size_mask calling position
2013-06-13Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "Three kvm related memory management fixes, a fix for show_trace, a fix for early console output and a patch from Ben to help prevent compile errors in regard to irq functions (or our lack thereof)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/pci: Implement IRQ functions if !PCI s390/sclp: fix new line detection s390/pgtable: make pgste lock an explicit barrier s390/pgtable: Save pgste during modify_prot_start/commit s390/dumpstack: fix address ranges for asynchronous and panic stack s390/pgtable: Fix guest overindication for change bit
2013-06-13Merge tag 'efi-urgent' into x86/urgentH. Peter Anvin
* More tweaking to the EFI variable anti-bricking algorithm. Quite a few users were reporting boot regressions in v3.9. This has now been fixed with a more accurate "minimum storage requirement to avoid bricking" value from Samsung (5K instead of 50%) and code to trigger garbage collection when we near our limit - Matthew Garrett. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2013-06-12x86: Fix typo in kexec register clearingKees Cook
Fixes a typo in register clearing code. Thanks to PaX Team for fixing this originally, and James Troup for pointing it out. Signed-off-by: Kees Cook <keescook@chromium.org> Link: http://lkml.kernel.org/r/20130605184718.GA8396@www.outflux.net Cc: <stable@vger.kernel.org> v2.6.30+ Cc: PaX Team <pageexec@freemail.hu> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2013-06-12x86, relocs: Move __vvar_page from S_ABS to S_RELKees Cook
The __vvar_page relocation should actually be listed in S_REL instead of S_ABS. Oddly, this didn't always cause things to break, presumably because there are no users for relocation information on 64 bits yet. [ hpa: Not for stable - new code in 3.10 ] Signed-off-by: Kees Cook <keescook@chromium.org> Link: http://lkml.kernel.org/r/20130611185652.GA23674@www.outflux.net Reported-by: Michael Davidson <md@google.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>