summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)AuthorFilesLines
2008-07-18nohz: prevent tick stop outside of the idle loopThomas Gleixner11-12/+12
Jack Ren and Eric Miao tracked down the following long standing problem in the NOHZ code: scheduler switch to idle task enable interrupts Window starts here ----> interrupt happens (does not set NEED_RESCHED) irq_exit() stops the tick ----> interrupt happens (does set NEED_RESCHED) return from schedule() cpu_idle(): preempt_disable(); Window ends here The interrupts can happen at any point inside the race window. The first interrupt stops the tick, the second one causes the scheduler to rerun and switch away from idle again and we end up with the tick disabled. The fact that it needs two interrupts where the first one does not set NEED_RESCHED and the second one does made the bug obscure and extremly hard to reproduce and analyse. Kudos to Jack and Eric. Solution: Limit the NOHZ functionality to the idle loop to make sure that we can not run into such a situation ever again. cpu_idle() { preempt_disable(); while(1) { tick_nohz_stop_sched_tick(1); <- tell NOHZ code that we are in the idle loop while (!need_resched()) halt(); tick_nohz_restart_sched_tick(); <- disables NOHZ mode preempt_enable_no_resched(); schedule(); preempt_disable(); } } In hindsight we should have done this forever, but ... /me grabs a large brown paperbag. Debugged-by: Jack Ren <jack.ren@marvell.com>, Debugged-by: eric miao <eric.y.miao@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-05-28Merge branch 'release' of ↵Linus Torvalds5-46/+125
git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Workaround for RSE issue
2008-05-27[IA64] Workaround for RSE issueTony Luck5-46/+125
Problem: An application violating the architectural rules regarding operation dependencies and having specific Register Stack Engine (RSE) state at the time of the violation, may result in an illegal operation fault and invalid RSE state. Such faults may initiate a cascade of repeated illegal operation faults within OS interruption handlers. The specific behavior is OS dependent. Implication: An application causing an illegal operation fault with specific RSE state may result in a series of illegal operation faults and an eventual OS stack overflow condition. Workaround: OS interruption handlers that switch to kernel backing store implement a check for invalid RSE state to avoid the series of illegal operation faults. The core of the workaround is the RSE_WORKAROUND code sequence inserted into each invocation of the SAVE_MIN_WITH_COVER and SAVE_MIN_WITH_COVER_R19 macros. This sequence includes hard-coded constants that depend on the number of stacked physical registers being 96. The rest of this patch consists of code to disable this workaround should this not be the case (with the presumption that if a future Itanium processor increases the number of registers, it would also remove the need for this patch). Move the start of the RBS up to a mod32 boundary to avoid some corner cases. The dispatch_illegal_op_fault code outgrew the spot it was squatting in when built with this patch and CONFIG_VIRT_CPU_ACCOUNTING=y Move it out to the end of the ivt. Signed-off-by: Tony Luck <tony.luck@intel.com>
2008-05-27Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6Linus Torvalds6-331/+521
* git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: avr32: Fix cpufreq oops when ondemand governor is default avr32: Update defconfigs avr32: export strnlen_user avr32: export copy_page
2008-05-27avr32: Fix cpufreq oops when ondemand governor is defaultHaavard Skinnemoen1-2/+1
Move the AP7 cpufreq init to late_initcall() so that we don't try to bring up cpufreq until the governor is ready. x86 also uses late_initcall() for this. Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-05-26Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.26Linus Torvalds6-104/+241
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.26: sh: Drop broken URAM support on SH7723. sh: update Migo-R defconfig sh: use sm501 8250 mfd support on r2d boards sh: add probe support for new sh7723 cut sh: fix VPU interrupt vector for sh7723 sh: fix USBF resource for sh7722
2008-05-26avr32: Update defconfigsHaavard Skinnemoen4-329/+516
Just provide reasonable defaults for the new stuff. Tickless and hrtimers are turned on for all boards except ATSTK1004. Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-05-26avr32: export strnlen_userAdrian Bunk1-0/+2
This patch fixes the following build error: <-- snip --> ... MODPOST 1327 modules ERROR: "strnlen_user" [drivers/input/misc/uinput.ko] undefined! ... make[2]: *** [__modpost] Error 1 <-- snip --> Reported-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-05-26avr32: export copy_pageAdrian Bunk1-0/+2
This patch fixes the following build error: <-- snip --> ... MODPOST 61 modules ERROR: "copy_page" [fs/fuse/fuse.ko] undefined! ... make[2]: *** [__modpost] Error 1 <-- snip --> Also add an empty line since *_page aren't "String functions". Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-05-26sh: Drop broken URAM support on SH7723.Paul Mundt2-7/+0
This was copied over from the previous MobileR bits, which doesn't apply to R2. The URAM block on R2 is recycled for the L2 instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-25Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LISTSam Ravnborg1-10/+3
init/Kconfig contains a list of configs that are searched for if 'make *config' are used with no .config present. Extend this list to look at the config identified by ARCH_DEFCONFIG. With this change we now try the defconfig targets last. This fixes a regression reported by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com>
2008-05-24Merge branch 'x86-fixes-for-linus' of ↵Linus Torvalds7-20/+26
git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip: x86: prevent PGE flush from interruption/preemption x86: use explicit copy in vdso_gettimeofday() namespacecheck: automated fixes x86/xen: fix arbitrary_virt_to_machine() x86: don't read maxlvt before checking if APIC is mapped x86: disable TSC for sched_clock() when calibration failed x86: distangle user disabled TSC from unstable x86: fix setup of cyc2ns in tsc_64.c
2008-05-24Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds10-37/+47
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] integrator: fix build warnings and errors [ARM] fix OMAP include loops Revert "[ARM] pxa: spitz wants PXA27x UDC definitions" [ARM] 5053/1: define before use of processor_id [ARM] 5052/1: export clock functions for the at91x40 [ARM] 5051/1: define pgtable_t for the !CONFIG_MMU case too [ARM] omap: fix omap clk support build errors [ARM] 5039/1: S3C244X: Rename SDI device if running on S3C244X. [ARM] 5043/1: pxafb: remove unused mode variable in pxafb_init_fbinfo [ARM] 5041/1: VR1000: Fix DM9000 IRQ flags initialisation [ARM] 5040/1: BAST: Fix DM9000 IRQ flags initialisation [ARM] 5038/1: ARM: OMAP: Remove tsc2102 references from board-palmte.c [ARM] 5025/2: fix collie cpu initialisation
2008-05-24frv: export empty_zero_pageAdrian Bunk1-0/+3
Fix the following build error: ERROR: "empty_zero_page" [fs/ext4/ext4dev.ko] undefined! Reported-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Adrian Bunk <bunk@kernel.org> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-23[ARM] integrator: fix build warnings and errorsRussell King2-2/+3
Fix resource_size_t warning in impd1.c, and printascii() build errors in pci_v3.c Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-23Merge branch 'fixes' of ↵Linus Torvalds2-3/+14
git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq: [CPUFREQ] clarify license of freq_table.c [CPUFREQ] Remove documentation of removed ondemand tunable. [CPUFREQ] Crusoe: longrun cpufreq module reports false min freq [CPUFREQ] powernow-k8: improve error messages
2008-05-23Merge branch 'merge' of ↵Linus Torvalds4-19/+8
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] iSeries: Remove unused mail address [POWERPC] mpic: Fix use of uninitialized variable [POWERPC] Add kernstart_addr to list of allowed symbols in prom_init [POWERPC] Fix __set_fixmap() for STRICT_MM_TYPECHECKS [POWERPC] PS3: Fix memory hotplug
2008-05-23x86: fix integer as NULL pointer warningHarvey Harrison1-1/+1
arch/x86/boot/printf.c:59:10: warning: Using plain integer as NULL pointer Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-23Revert "[ARM] pxa: spitz wants PXA27x UDC definitions"Russell King1-1/+0
This reverts commit 53491e042e79578765e2d33512a45d50eb0d8801, which hit the kernel tree too early. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-23[ARM] 5052/1: export clock functions for the at91x40Greg Ungerer1-1/+17
Export the AT91 clock functions for the AT91X40. Some external code common to all AT91 family parts relys on this, like the gpio and serial support. Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-23x86: use explicit copy in vdso_gettimeofday()Andi Kleen1-3/+3
Jeremy's gcc 3.4 seems to be unable to inline a 8 byte memcpy. But the vdso doesn't support external references. Copy the structure members of struct timezone explicitely instead. Signed-off-by: Andi Kleen <ak@linux.intel.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-05-23namespacecheck: automated fixesIngo Molnar2-3/+3
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-05-23x86/xen: fix arbitrary_virt_to_machine()Jan Beulich1-1/+1
While I realize that the function isn't currently being used, I still think an obvious mistake like this should be corrected. Signed-off-by: Jan Beulich <jbeulich@novell.com> Acked-by: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-05-23x86: don't read maxlvt before checking if APIC is mappedChuck Ebbert1-1/+1
A check for unmapped apic was added before reading maxlvt but the early read of maxlvt wasn't removed. Signed-off-by: Chuck Ebbert <cebbert@redhat.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@kernel.org
2008-05-23x86: disable TSC for sched_clock() when calibration failedThomas Gleixner1-0/+5
When the TSC calibration fails then TSC is still used in sched_clock(). Disable it completely in that case. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@kernel.org
2008-05-23x86: distangle user disabled TSC from unstableThomas Gleixner1-10/+10
tsc_enabled is set to 0 from the command line switch "notsc" and from the mark_tsc_unstable code. Seperate those functionalities and replace tsc_enable with tsc_disable. This makes also the native_sched_clock() decision when to use TSC understandable. Preparatory patch to solve the sched_clock() issue on 32 bit. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-05-23x86: fix setup of cyc2ns in tsc_64.cThomas Gleixner1-2/+3
When the TSC is calibrated against the PIT due to the nonavailability of PMTIMER/HPET or due to SMI interference then the setup of the per CPU cyc2ns variables is skipped. This is unlikely to happen but it would definitely render sched_clock() unusable. This was introduced with commit 53d517cdbaac704352b3d0c10fecb99e0b54572e x86: scale cyc_2_nsec according to CPU frequency Update the per CPU cyc2ns variables in all exit pathes of tsc_calibrate. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@kernel.org
2008-05-23[POWERPC] mpic: Fix use of uninitialized variableStephen Rothwell1-17/+3
Compiling ppc64_defconfig with gcc 4.3 gives thes warnings: arch/powerpc/sysdev/mpic.c: In function 'mpic_irq_get_priority': arch/powerpc/sysdev/mpic.c:1351: warning: 'is_ipi' may be used uninitialized in this function arch/powerpc/sysdev/mpic.c: In function 'mpic_irq_set_priority': arch/powerpc/sysdev/mpic.c:1328: warning: 'is_ipi' may be used uninitialized in this function It turns out that in the cases where is_ipi is uninitialized, another variable (mpic) will be NULL and it is dereferenced. Protect against this by returning if mpic is NULL in mpic_irq_set_priority, and removing mpic_irq_get_priority completely as it has no in tree callers. This has the nice side effect of making the warning go away. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-05-23[POWERPC] Add kernstart_addr to list of allowed symbols in prom_initMichael Ellerman1-1/+1
Since commit "85xx: Add support for relocatable kernel (and booting at non-zero)" (37dd2badcfcec35f5e21a0926968d77a404f03c3), PHYSICAL_START is #defined as kernstart_addr if RELOCATABLE and FLATMEM is enabled. PHYSICAL_START is used in prom_init.c and so kernstart_addr needs to be added to the list of allowed symbols that prom_init.c can access. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-05-23[POWERPC] Fix __set_fixmap() for STRICT_MM_TYPECHECKSDavid Gibson1-1/+1
__set_fixmap() in pgtable_32.c currently fails to compile if STRICT_MM_TYPECHECKS is defined. This fixes it. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-05-23[POWERPC] PS3: Fix memory hotplugGeoff Levand1-0/+3
A change was made to walk_memory_resource() in commit 4b119e21d0c66c22e8ca03df05d9de623d0eb50f that added a check of find_lmb(). Add the coresponding lmb_add() call to ps3_mm_add_memory() so that that check will succeed. This fixes the condition where the PS3 boots up with only the 128 MiB of boot memory, and doesn't see the other 128MiB that is available. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-05-23sh: update Migo-R defconfigMagnus Damm1-57/+237
Update the Migo-R defconfig to include support for KEYSC, I2C, RTC and NAND and NOR MTD devices. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-23sh: use sm501 8250 mfd support on r2d boardsMagnus Damm1-38/+1
Make use of recently added sm501 8250 uart support, commit 61711f8fd8180e458cfb6846bcf4fc636a95f3db makes the mfd code handle 8250 uarts so there is no longer need to do it from the r2d board code. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-23sh: add probe support for new sh7723 cutMagnus Damm1-0/+1
This patch adds support for sh7723 silicon with a prr value of 0x51. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-23sh: fix VPU interrupt vector for sh7723Magnus Damm1-1/+1
This patch fixes a VPU vector typo for sh7723. The correct value is 0x980, the same as for sh7722. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-23sh: fix USBF resource for sh7722Magnus Damm1-1/+1
The USBF function on sh7722 is currently not working with the m66592_udc driver. The driver is using platform_get_resource_byname() so my commit a0d29798e568116aa6c32aef7bab2d9e620c88ad broke sh7722 support. The long term fix is to replace platform_get_resource_byname() in the driver with platform_get_resource(), but this helps until that happens. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-05-22[ARM] omap: fix omap clk support build errorsRussell King1-0/+1
arch/arm/plat-omap/clock.c:397: warning: "struct cpufreq_frequency_table" declared inside parameter list arch/arm/plat-omap/clock.c:397: warning: its scope is only this definition or declaration, which is probably not what you want arch/arm/plat-omap/clock.c: In function `clk_init_cpufreq_table': arch/arm/plat-omap/clock.c:402: error: structure has no member named `clk_init_cpufreq_table' arch/arm/plat-omap/clock.c:403: error: structure has no member named `clk_init_cpufreq_table' Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-22[ARM] 5039/1: S3C244X: Rename SDI device if running on S3C244X.Ben Dooks1-0/+1
Rename the SDI device if on an S3C2440 or S3C2442. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-22[ARM] 5041/1: VR1000: Fix DM9000 IRQ flags initialisationBen Dooks1-2/+2
Add the IRQF_TRIGGER_ type to the DM9000 IRQ resource to stop the driver itself complaining it was not given any flags to use. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-22[ARM] 5040/1: BAST: Fix DM9000 IRQ flags initialisationBen Dooks1-1/+1
Add the IRQF_TRIGGER_ type to the DM9000 IRQ resource to stop the driver itself complaining it was not given any flags to use. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-22[ARM] 5038/1: ARM: OMAP: Remove tsc2102 references from board-palmte.cTony Lindgren1-10/+0
As noted by Russell King. These depend on tsc210x drivers getting integrated first. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-22[ARM] 5025/2: fix collie cpu initialisationThomas Kunze1-20/+22
collie.h: * add some meaningfull names to some gpios collie.c: * initialize cpu registers correctly Signed-off-by: Thomas Kunze <thommycheck@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-05-21Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds4-21/+40
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Prevent stack backtrace false positives on trap frames. sparc64: Fix stack tracing through trap frames. sparc64: Fix kernel thread stack termination. sunhv: Fix locking in non-paged I/O case.
2008-05-21sparc64: Prevent stack backtrace false positives on trap frames.David S. Miller1-0/+1
When we fully commit to returning back to kernel mode from a trap, zero out the regs->magic value to prevent false positives during stack backtraces. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-05-21sparc64: Fix stack tracing through trap frames.David S. Miller2-10/+14
The offset to the pt_regs area was wrong, so we weren't looking at the right location for the magic cookie. A trap frame is composed of a "struct sparc_stackf" then a "struct pt_regs", the code was using "struct reg_window" instead of "struct sparc_stackf". Signed-off-by: David S. Miller <davem@davemloft.net>
2008-05-21sparc64: Fix kernel thread stack termination.David S. Miller1-11/+25
Because of the silly way I set up the initial stack for new kernel threads, there is a loop at the top of the stack. To fix this, properly add another stack frame that is copied from the parent and terminate it in the child by setting the frame pointer in that frame to zero. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-05-21provide out-of-line strcat() for m68kAl Viro1-0/+6
Whether we sidestep it in init/main.c or not, such situations will arise again; compiler does generate calls of strcat() on optimizations, so we really ought to have an out-of-line version... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-21MODULE_LICENSE expects "GPL v2", not "GPLv2"Al Viro1-1/+1
... and we have few enough places using the latter to make it simpler to do search and replace... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-21thanks to net/mac80211 we need to pull drivers/leds/Kconfig on umlAl Viro1-0/+2
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-05-21missing export of csum_partial() on uml/amd64Al Viro1-2/+4
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>