- Mar 31, 2012
-
-
Andi Kleen authored
On gccs that support AVX it's a good idea to disable that too, similar to how SSE2, SSE1 etc. are already disabled. This prevents the compiler from generating AVX ever implicitely. No failure observed, just from review. [ hpa: Marking this for urgent and stable, simply because the patch will either have absolutely no effect *or* it will avoid potentially very hard to debug failures. ] Signed-off-by:
Andi Kleen <ak@linux.intel.com> Link: http://lkml.kernel.org/r/1332960678-11879-1-git-send-email-andi@firstfloor.org Signed-off-by:
H. Peter Anvin <hpa@zytor.com> Cc: <stable@vger.kernel.org>
-
- Mar 30, 2012
-
-
Len Brown authored
The X86_32-only disable_hlt/enable_hlt mechanism was used by the 32-bit floppy driver. Its effect was to replace the use of the HLT instruction inside default_idle() with cpu_relax() - essentially it turned off the use of HLT. This workaround was commented in the code as: "disable hlt during certain critical i/o operations" "This halt magic was a workaround for ancient floppy DMA wreckage. It should be safe to remove." H. Peter Anvin additionally adds: "To the best of my knowledge, no-hlt only existed because of flaky power distributions on 386/486 systems which were sold to run DOS. Since DOS did no power management of any kind, including HLT, the power draw was fairly uniform; when exposed to the much hhigher noise levels you got when Linux used HLT caused some of these systems to fail. They were by far in the minority even back then." Alan Cox further says: "Also for the Cyrix 5510 which tended to go castors up if a HLT occurred during a DMA cycle and on a few other boxes HLT during DMA tended to go astray. Do we care ? I doubt it. The 5510 was pretty obscure, the 5520 fixed it, the 5530 is probably the oldest still in any kind of use." So, let's finally drop this. Signed-off-by:
Len Brown <len.brown@intel.com> Signed-off-by:
Josh Boyer <jwboyer@redhat.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Acked-by:
"H. Peter Anvin" <hpa@zytor.com> Acked-by:
Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Stephen Hemminger <shemminger@vyatta.com Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: <stable@kernel.org> Link: http://lkml.kernel.org/n/tip-3rhk9bzf0x9rljkv488tloib@git.kernel.org [ If anyone cares then alternative instruction patching could be used to replace HLT with a one-byte NOP instruction. Much simpler. ] Signed-off-by:
Ingo Molnar <mingo@kernel.org>
-
Haojian Zhuang authored
arch/arm/mach-pxa/stargate2.c:155:3: error: unknown field ‘dev’ specified in initializer arch/arm/mach-pxa/stargate2.c:155:3: warning: initialization from incompatible pointer type [enabled by default] arch/arm/mach-pxa/stargate2.c:155:3: warning: (near initialization for ‘stargate2_sensor_3_con[0].dev_name’) [enabled by default] make[1]: *** [arch/arm/mach-pxa/stargate2.o] Error 1 make: *** [arch/arm/mach-pxa] Error 2 It's caused by 'dev' field removed from struct regulator_consumer_supply. Signed-off-by:
Haojian Zhuang <haojian.zhuang@gmail.com>
-
Haojian Zhuang authored
arch/arm/mach-pxa/cm-x300.c:716:3: error: unknown field ‘dev’ specified in initializer make[1]: *** [arch/arm/mach-pxa/cm-x300.o] Error 1 make: *** [arch/arm/mach-pxa] Error 2 It's caused by 'dev' field removed from struct regulator_consumer_supply. Signed-off-by:
Haojian Zhuang <haojian.zhuang@gmail.com>
-
Paul Gortmaker authored
Commit 737f360d "regulator: Remove support for supplies specified by struct device" caused this file to break, since it was still relying on the device field to be present. Map it onto dev_name appropriately Since there are two consumers with the name "reg-userspace-consumer", we have to supply the ID as a suffix in the REGULATOR_CONSUMER calls. Signed-off-by:
Paul Gortmaker <paul.gortmaker@windriver.com> CC: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by:
Haojian Zhuang <haojian.zhuang@gmail.com>
-
Tony Luck authored
Fix this build error on ia64: In file included from include/linux/sched.h:92, from arch/ia64/kernel/asm-offsets.c:9: include/linux/llist.h:59:25: error: asm/cmpxchg.h: No such file or directory make[1]: *** [arch/ia64/kernel/asm-offsets.s] Error 1 Right now we don't seem to need any actual contents for the asm/cmpxchg.h to make the build work ... so leave the migration of xchg() and cmpxchg() to this new header file for a future patch. Also process.c needs <asm/switch_to.h> (for definition of pfm_syst_info). Signed-off-by:
Tony Luck <tony.luck@intel.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Grant Likely authored
Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Grant Likely authored
The debugfs code is really generic for all platforms. This patch removes the powerpc-specific directory reference and makes it available to all architectures. Signed-off-by:
Grant Likely <grant.likely@secretlab.ca>
-
Roland Stigge authored
During a complex merge for v3.4, one line of the commit c20b909b ("ARM: LPC32xx: Ethernet support") was reverted wrongly ("lpc-eth.0" -> "lpc-net.0") while the other conflicts were merged correctly. This patch re-applies the clock name "lpc-eth.0". Signed-off-by:
Roland Stigge <stigge@antcom.de> Signed-off-by:
Olof Johansson <olof@lixom.net>
-
Govindraj.R authored
Fix the compilation break observed on latest mainline caused by 9f97da78 (Disintegrate asm/system.h for ARM): arch/arm/mach-omap1/pm.c: In function 'omap_pm_prepare': arch/arm/mach-omap1/pm.c:587: error: implicit declaration of function 'disable_hlt' arch/arm/mach-omap1/pm.c: In function 'omap_pm_finish': arch/arm/mach-omap1/pm.c:624: error: implicit declaration of function 'enable_hlt' arch/arm/mach-omap1/pm.c: In function 'omap_pm_init': arch/arm/mach-omap1/pm.c:681: error: 'arm_pm_idle' undeclared (first use in this function) ... arch/arm/mach-omap2/pm.c: In function 'omap_pm_begin': arch/arm/mach-omap2/pm.c:239: error: implicit declaration of function 'disable_hlt' arch/arm/mach-omap2/pm.c: In function 'omap_pm_end': arch/arm/mach-omap2/pm.c:247: error: implicit declaration of function 'enable_hlt' Signed-off-by:
Govindraj.R <govindraj.raja@ti.com> Acked-by:
Kevin Hilman <khilman@ti.com> [tony@atomide.com: updated to fix omap1 too] Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
- Mar 29, 2012
-
-
Tarun Kanti DebBarma authored
Since all references to OMAP_GPIO_IRQ macro are replaced now with gpio_to_irq(), this can be removed altogether. Signed-off-by:
Tarun Kanti DebBarma <tarun.kanti@ti.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Tarun Kanti DebBarma authored
The following commits change gpio-omap to use dynamic IRQ allocation: 25db711d gpio/omap: Fix IRQ handling for SPARSE_IRQ 384ebe1c gpio/omap: Add DT support to GPIO driver With dynamic allocation of IRQ the usage of OMAP_GPIO_IRQ is no longer valid. We must be using gpio_to_irq() instead. Signed-off-by:
Tarun Kanti DebBarma <tarun.kanti@ti.com> [tony@atomide.com: updated comments] Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Liu, Chuansheng authored
The default irq_disable() sematics are to mark the interrupt disabled, but keep it unmasked. If the interrupt is delivered while marked disabled, the low level interrupt handler masks it and marks it pending. This is important for detecting wakeup interrupts during suspend and for edge type interrupts to avoid losing interrupts. fixup_irqs() moves the interrupts away from an offlined cpu. For certain interrupt types it needs to mask the interrupt line before changing the affinity. After affinity has changed the interrupt line is unmasked again, but only if it is not marked disabled. This breaks the lazy irq disable semantics and causes problems in suspend as the interrupt can be lost or wakeup functionality is broken. Check irqd_irq_masked() instead of irqd_irq_disabled() because irqd_irq_masked() is only set, when the core code actually masked the interrupt line. If it's not set, we unmask the interrupt and let the lazy irq disable logic deal with an eventually incoming interrupt. [ tglx: Massaged changelog and added a comment ] Signed-off-by:
liu chuansheng <chuansheng.liu@intel.com> Cc: Yanmin Zhang <yanmin_zhang@linux.intel.com> Link: http://lkml.kernel.org/r/27240C0AC20F114CBF8149A2696CBE4A05DFB3@SHSMSX101.ccr.corp.intel.com Signed-off-by:
Thomas Gleixner <tglx@linutronix.de>
-
Dave Young authored
crashkernel reservation need know the total memory size. Current get_total_mem simply use max_pfn - min_low_pfn. It is wrong because it will including memory holes in the middle. Especially for kvm guest with memory > 0xe0000000, there's below in qemu code: qemu split memory as below: if (ram_size >= 0xe0000000 ) { above_4g_mem_size = ram_size - 0xe0000000; below_4g_mem_size = 0xe0000000; } else { below_4g_mem_size = ram_size; } So for 4G mem guest, seabios will insert a 512M usable region beyond of 4G. Thus in above case max_pfn - min_low_pfn will be more than original memsize. Fixing this issue by using memblock_phys_mem_size() to get the total memsize. Signed-off-by:
Dave Young <dyoung@redhat.com> Reviewed-by:
WANG Cong <xiyou.wangcong@gmail.com> Reviewed-by:
Simon Horman <horms@verge.net.au> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Srivatsa S. Bhat authored
This was marked as obsolete for quite a while now.. Now it is time to remove it altogether. And while doing this, get rid of first_cpu() as well. Also, remove the redundant setting of cpu_online_mask in smp_prepare_cpus() because the generic code would have already set cpu 0 in cpu_online_mask. Reported-by:
Tony Luck <tony.luck@intel.com> Signed-off-by:
Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Gilad Ben-Yossef authored
We have lots of infrastructure in place to partition multi-core systems such that we have a group of CPUs that are dedicated to specific task: cgroups, scheduler and interrupt affinity, and cpuisol= boot parameter. Still, kernel code will at times interrupt all CPUs in the system via IPIs for various needs. These IPIs are useful and cannot be avoided altogether, but in certain cases it is possible to interrupt only specific CPUs that have useful work to do and not the entire system. This patch set, inspired by discussions with Peter Zijlstra and Frederic Weisbecker when testing the nohz task patch set, is a first stab at trying to explore doing this by locating the places where such global IPI calls are being made and turning the global IPI into an IPI for a specific group of CPUs. The purpose of the patch set is to get feedback if this is the right way to go for dealing with this issue and indeed, if the issue is even worth dealing with at all. Based on the feedback from this patch set I plan to offer further patches that address similar issue in other code paths. This patch creates an on_each_cpu_mask() and on_each_cpu_cond() infrastructure API (the former derived from existing arch specific versions in Tile and Arm) and uses them to turn several global IPI invocation to per CPU group invocations. Core kernel: on_each_cpu_mask() calls a function on processors specified by cpumask, which may or may not include the local processor. You must not call this function with disabled interrupts or from a hardware interrupt handler or from a bottom half handler. arch/arm: Note that the generic version is a little different then the Arm one: 1. It has the mask as first parameter 2. It calls the function on the calling CPU with interrupts disabled, but this should be OK since the function is called on the other CPUs with interrupts disabled anyway. arch/tile: The API is the same as the tile private one, but the generic version also calls the function on the with interrupts disabled in UP case This is OK since the function is called on the other CPUs with interrupts disabled. Signed-off-by:
Gilad Ben-Yossef <gilad@benyossef.com> Reviewed-by:
Christoph Lameter <cl@linux.com> Acked-by:
Chris Metcalf <cmetcalf@tilera.com> Acked-by:
Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Pekka Enberg <penberg@kernel.org> Cc: Matt Mackall <mpm@selenic.com> Cc: Rik van Riel <riel@redhat.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Sasha Levin <levinsasha928@gmail.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Avi Kivity <avi@redhat.com> Acked-by:
Michal Nazarewicz <mina86@mina86.org> Cc: Kosaki Motohiro <kosaki.motohiro@gmail.com> Cc: Milton Miller <miltonm@bga.com> Cc: Russell King <linux@arm.linux.org.uk> Acked-by:
Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Robert Richter authored
Add information about LVT offset assignments to better debug firmware bugs related to this. See following examples. # dmesg | grep -i 'offset\|ibs' LVT offset 0 assigned for vector 0xf9 [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0x10400, but the register is already in use for vector 0xf9 on another cpu [Firmware Bug]: cpu 0, IBS interrupt offset 0 not available (MSRC001103A=0x0000000000000100) Failed to setup IBS, -22 In this case the BIOS assigns both offsets for MCE (0xf9) and IBS (0x400) vectors to offset 0, which is why the second APIC setup (IBS) failed. With correct setup you get: # dmesg | grep -i 'offset\|ibs' LVT offset 0 assigned for vector 0xf9 LVT offset 1 assigned for vector 0x400 IBS: LVT offset 1 assigned perf: AMD IBS detected (0x00000007) oprofile: AMD IBS detected (0x00000007) Note: The vector includes also the message type to handle also NMIs (0x400). In the firmware bug message the format is the same as of the APIC500 register and includes the mask bit (bit 16) in addition. Signed-off-by:
Robert Richter <robert.richter@amd.com> Signed-off-by:
Ingo Molnar <mingo@kernel.org>
-
David Howells authored
Delete all instances of asm/system.h as they should be redundant by this point. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Remove all #inclusions of asm/system.h preparatory to splitting and killing it. Performed with the following command: perl -p -i -e 's!^#\s*include\s*<asm/system[.]h>.*\n!!' `grep -Irl '^#\s*include\s*<asm/system[.]h>' *` Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Move all declarations of free_initmem() to linux/mm.h so that there's only one and it's used by everything. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-c6x-dev@linux-c6x.org cc: microblaze-uclinux@itee.uq.edu.au cc: linux-sh@vger.kernel.org cc: sparclinux@vger.kernel.org cc: x86@kernel.org cc: linux-mm@kvack.org
-
David Howells authored
Disintegrate asm/system.h for OpenRISC. Not compiled. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Arnd Bergmann <arnd@arndb.de> cc: linux@lists.openrisc.net
-
David Howells authored
Disintegrate asm/system.h for Xtensa. Signed-off-by:
David Howells <dhowells@redhat.com> cc: Chris Zankel <chris@zankel.net>
-
Guan Xuetao authored
Disintegrate asm/system.h for Unicore32. (Compilation successful) The implementation details are not changed, but only splitted. BTW, some codestyles are adjusted. Signed-off-by:
David Howells <dhowells@redhat.com> Signed-off-by:
Guan Xuetao <gxt@mprc.pku.edu.cn>
-
David Howells authored
Disintegrate asm/system.h for Tile. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Chris Metcalf <cmetcalf@tilera.com>
-
David Howells authored
Disintegrate asm/system.h for Sparc. Signed-off-by:
David Howells <dhowells@redhat.com> cc: sparclinux@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for SH. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-sh@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for Score. Not compiled. Signed-off-by:
David Howells <dhowells@redhat.com> cc: Chen Liqin <liqin.chen@sunplusct.com>
-
David Howells authored
Disintegrate asm/system.h for S390. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-s390@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for PowerPC. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org> cc: linuxppc-dev@lists.ozlabs.org
-
David Howells authored
Disintegrate asm/system.h for PA-RISC. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-parisc@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for MN10300. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-am33-list@redhat.com
-
David Howells authored
Disintegrate asm/system.h for MIPS. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Ralf Baechle <ralf@linux-mips.org> cc: linux-mips@linux-mips.org
-
David Howells authored
Disintegrate asm/system.h for Microblaze. Not compiled. Signed-off-by:
David Howells <dhowells@redhat.com> cc: microblaze-uclinux@itee.uq.edu.au
-
David Howells authored
Disintegrate asm/system.h for M68K. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Greg Ungerer <gerg@uclinux.org> cc: linux-m68k@lists.linux-m68k.org
-
David Howells authored
Fix the m68k versions of xchg() and cmpxchg() to fail to link if given an inappropriately sized pointer rather than BUG()'ing at runtime. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Greg Ungerer <gerg@uclinux.org> cc: linux-m68k@lists.linux-m68k.org
-
David Howells authored
Disintegrate asm/system.h for M32R. Signed-off-by:
David Howells <dhowells@redhat.com> cc: linux-m32r@ml.linux-m32r.org
-
David Howells authored
Disintegrate asm/system.h for IA64. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Tony Luck <tony.luck@intel.com> cc: linux-ia64@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for Hexagon. Not compiled. Signed-off-by:
David Howells <dhowells@redhat.com> Acked-by:
Richard Kuo <rkuo@codeaurora.org> cc: linux-hexagon@vger.kernel.org
-
David Howells authored
Disintegrate asm/system.h for H8300. Signed-off-by:
David Howells <dhowells@redhat.com> cc: Yoshinori Sato <ysato@users.sourceforge.jp>
-
David Howells authored
Disintegrate asm/system.h for FRV. Signed-off-by:
David Howells <dhowells@redhat.com>
-