1. 08 12月, 2008 1 次提交
  2. 19 11月, 2008 1 次提交
  3. 18 11月, 2008 2 次提交
    • P
      x86: more general identifier for Phoenix BIOS · 0af40a4b
      Philipp Kohlbecher 提交于
      Impact: widen the reach of the low-memory-protect DMI quirk
      
      Phoenix BIOSes variously identify their vendor as "Phoenix Technologies,
      LTD" or "Phoenix Technologies LTD" (without the comma.)
      
      This patch makes the identification string in the bad_bios_dmi_table
      more general (following a suggestion by Ingo Molnar), so that both
      versions are handled.
      
      Again, the patched file compiles cleanly and the patch has been tested
      successfully on my machine.
      Signed-off-by: NPhilipp Kohlbecher <xt28@gmx.de>
      Cc: <stable@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0af40a4b
    • Y
      x86: fix wakeup_cpu with numaq/es7000, v2, fix · 54ac14a8
      Yinghai Lu 提交于
      Impact: fix wakeup_secondary_cpu with hotplug
      
      We can not put that into x86_quirks, because that is __initdata.
      So try to move that to genapic, and add update_genapic in x86_quirks.
      
      later we even could use that stub to:
      
       1. autodetect CONFIG_ES7000_CLUSTERED_APIC
       2. more correct inquire_remote_apic with apic_verbosity setting.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      54ac14a8
  4. 20 10月, 2008 1 次提交
    • V
      kdump: make elfcorehdr_addr independent of CONFIG_PROC_VMCORE · 57cac4d1
      Vivek Goyal 提交于
      o elfcorehdr_addr is used by not only the code under CONFIG_PROC_VMCORE
        but also by the code which is not inside CONFIG_PROC_VMCORE.  For
        example, is_kdump_kernel() is used by powerpc code to determine if
        kernel is booting after a panic then use previous kernel's TCE table.
        So even if CONFIG_PROC_VMCORE is not set in second kernel, one should be
        able to correctly determine that we are booting after a panic and setup
        calgary iommu accordingly.
      
      o So remove the assumption that elfcorehdr_addr is under
        CONFIG_PROC_VMCORE.
      
      o Move definition of elfcorehdr_addr to arch dependent crash files.
        (Unfortunately crash dump does not have an arch independent file
        otherwise that would have been the best place).
      
      o kexec.c is not the right place as one can Have CRASH_DUMP enabled in
        second kernel without KEXEC being enabled.
      
      o I don't see sh setup code parsing the command line for
        elfcorehdr_addr.  I am wondering how does vmcore interface work on sh.
        Anyway, I am atleast defining elfcoredhr_addr so that compilation is not
        broken on sh.
      Signed-off-by: NVivek Goyal <vgoyal@redhat.com>
      Acked-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      Acked-by: NSimon Horman <horms@verge.net.au>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57cac4d1
  5. 16 10月, 2008 4 次提交
  6. 13 10月, 2008 2 次提交
  7. 23 9月, 2008 1 次提交
  8. 22 9月, 2008 2 次提交
  9. 16 9月, 2008 3 次提交
    • I
      x86: add X86_RESERVE_LOW_64K · fc381519
      Ingo Molnar 提交于
      This bugzilla:
      
        http://bugzilla.kernel.org/show_bug.cgi?id=11237
      
      Documents a wide range of systems where the BIOS utilizes the first
      64K of physical memory during suspend/resume and other hardware events.
      
      Currently we reserve this memory on all AMI and Phoenix BIOS systems.
      Life is too short to hunt subtle memory corruption problems like this,
      so we try to be robust by default.
      
      Still, allow this to be overriden: allow users who want that first 64K
      of memory to be available to the kernel disable the quirk, via
      CONFIG_X86_RESERVE_LOW_64K=n.
      
      Also, allow the early reservation to overlap with other
      early reservations.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fc381519
    • I
      x86: reserve low 64K on AMI and Phoenix BIOS boxen · 1e22436e
      Ingo Molnar 提交于
      there's multiple reports about suspend/resume related low memory
      corruption in this bugzilla:
      
        http://bugzilla.kernel.org/show_bug.cgi?id=11237
      
      the common pattern is that the corruption is caused by the BIOS,
      and that it affects some portion of the first 64K of physical RAM.
      
      So add a DMI quirk
      
      This will waste 64K RAM on 'good' systems too, but without knowing
      the exact nature of this BIOS memory corruption this is the safest
      approach.
      
      This might as well solve a wide range of suspend/resume breakages
      under Linux.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1e22436e
    • I
      x86: add DMI quirk for AMI BIOS which corrupts address 0xc000 during resume · 5649b7c3
      Ingo Molnar 提交于
      Alan Jenkins and Andy Wettstein reported a suspend/resume memory
      corruption bug and extensively documented it here:
      
         http://bugzilla.kernel.org/show_bug.cgi?id=11237
      
      The bug is that the BIOS overwrites 1K of memory at 0xc000 physical,
      without registering it in e820 as reserved or giving the kernel any
      idea about this.
      
      Detect AMI BIOSen and reserve that 1K.
      
      We paint this bug around with a very broad brush (reserving that 1K on all
      AMI BIOS systems), as the bug was extremely hard to find and needed several
      weeks and lots of debugging and patching.
      
      The bug was found via the CONFIG_X86_CHECK_BIOS_CORRUPTION=y debug feature,
      if similar bugs are suspected then this feature can be enabled on other
      systems as well to scan low memory for corrupted memory.
      Reported-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Reported-by: NAndy Wettstein <ajw1980@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5649b7c3
  10. 12 9月, 2008 1 次提交
    • J
      x86: fix possible x86_64 and EFI regression · 0ad5bce7
      Jeremy Fitzhardinge 提交于
      Russ Anderson reported a boot crash with EFI and latest mainline:
      
       BIOS-e820: 00000000fffa0000 - 00000000fffac000 (reserved)
      Pid: 0, comm: swapper Not tainted 2.6.27-rc5-00100-gec0c15af-dirty #5
      
      Call Trace:
       [<ffffffff80849195>] early_idt_handler+0x55/0x69
       [<ffffffff80313e52>] __memcpy+0x12/0xa4
       [<ffffffff80859015>] efi_init+0xce/0x932
       [<ffffffff80869c83>] setup_early_serial8250_console+0x2d/0x36a
       [<ffffffff80238688>] __insert_resource+0x18/0xc8
       [<ffffffff8084f6de>] setup_arch+0x3a7/0x632
       [<ffffffff808499ed>] start_kernel+0x91/0x367
       [<ffffffff80849393>] x86_64_start_kernel+0xe3/0xe7
       [<ffffffff808492b0>] x86_64_start_kernel+0x0/0xe7
      
       RIP 0x10
      
      Such a crash is possible if the CPU in this system is a 64-bit
      processor which doesn't support NX (ie, old Intel P4 -based64-bit
      processors).
      
      Certainly, if we support such processors, then we should start with
      _PAGE_NX initially clear in __supported_pte_flags, and then set it once
      we've established that the processor does indeed support NX.  That will
      prevent early_ioremap - or anything else - from trying to set it.
      
      The simple fix is to simply call check_efer() earlier.
      Reported-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0ad5bce7
  11. 07 9月, 2008 4 次提交
  12. 22 8月, 2008 1 次提交
  13. 15 8月, 2008 1 次提交
    • T
      x86, bootup: add built-in kernel command line for x86 (v2) · 516cbf37
      Tim Bird 提交于
      Allow x86 to support a built-in kernel command line.  The built-in
      command line can override the one provided by the boot loader, for
      those cases where the boot loader is broken or it is difficult
      to change the command line in the the boot loader.
      
      H. Peter Anvin wrote:
      > Ingo Molnar wrote:
      >> Best would be to make it really apparent in the code that nothing
      >> changes if this config option is not set. Preferably there should be
      >> no extra code at all in that case.
      >>
      >
      > I would like to see this:
      [...Nested ifdefs...]
      
      OK. This version changes absolutely nothing if CONFIG_CMDLINE_BOOL is not
      set (the default).  Also, no space is appended even when CONFIG_CMDLINE_BOOL
      is set, but the builtin string is empty.  This is less sloppy all the way
      around, IMHO.
      
      Note that I use the same option names as on other arches for
      this feature.
      
      [ mingo@elte.hu: build fix ]
      Signed-off-by: NTim Bird <tim.bird@am.sony.com>
      Cc: Matt Mackall <mpm@selenic.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      516cbf37
  14. 13 8月, 2008 1 次提交
    • M
      x86: fix 2 section mismatch warnings - find_and_reserve_crashkernel · 6b356022
      Marcin Slusarz 提交于
      WARNING: vmlinux.o(.text+0xcd1f): Section mismatch in reference from the function find_and_reserve_crashkernel() to the function .init.text:find_e820_area()
      The function find_and_reserve_crashkernel() references
      the function __init find_e820_area().
      This is often because find_and_reserve_crashkernel lacks a __init
      annotation or the annotation of find_e820_area is wrong.
      
      WARNING: vmlinux.o(.text+0xcd38): Section mismatch in reference from the function find_and_reserve_crashkernel() to the function .init.text:reserve_bootmem_generic()
      The function find_and_reserve_crashkernel() references
      the function __init reserve_bootmem_generic().
      This is often because find_and_reserve_crashkernel lacks a __init
      annotation or the annotation of reserve_bootmem_generic is wrong.
      
      find_and_reserve_crashkernel is called from __init function (reserve_crashkernel)
      and calls 2 __init functions (find_e820_area, reserve_bootmem_generic),
      so mark it __init
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6b356022
  15. 12 8月, 2008 1 次提交
  16. 09 8月, 2008 1 次提交
  17. 24 7月, 2008 1 次提交
  18. 22 7月, 2008 1 次提交
  19. 20 7月, 2008 2 次提交
  20. 19 7月, 2008 2 次提交
    • B
      x86: move dma32_reserve_bootmem() after reserve_crashkernel() · 91467bdf
      Bernhard Walle 提交于
      On a x86-64 machine (nothing special I could encounter) I had the problem that
      crashkernel reservation with the usual "64M@16M" failed. While debugging that,
      I encountered that dma32_reserve_bootmem() reserves a memory region which is in
      that area.
      
      Because dma32_reserve_bootmem() does not rely on a specific offset but
      crashkernel does, it makes sense to move the dma32_reserve_bootmem()
      reservation down a bit. I tested that patch and it works without problems. I
      don't see any negative effects of that move, but maybe I oversaw something ...
      
      While we strictly don't need that patch in 2.6.27 because we have the
      automatic, dynamic offset detection, it makes sense to also include it here
      because:
      
        - it's easier to get it in -stable then,
        - many people are still used to the 'crashkernel=...@16M' syntax,
        - not everybody may be using a reloatable kernel.
      Signed-off-by: NBernhard Walle <bwalle@suse.de>
      Cc: kexec@lists.infradead.org
      Cc: vgoyal@redhat.com
      Cc: akpm@linux-foundation.org
      Cc: Bernhard Walle <bwalle@suse.de>
      Cc: yhlu.kernel@gmail.com
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      91467bdf
    • A
      x86 setup.c: cleanup includes · 47129654
      Alexander Beregalov 提交于
      x86: remove double includes in setup.c
      Signed-off-by: NAlexander Beregalov <a.beregalov@gmail.com>
      Cc: yhlu.kernel@gmail.com
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      47129654
  21. 16 7月, 2008 2 次提交
  22. 13 7月, 2008 1 次提交
    • Y
      x86: fix numaq_tsc_disable calling · 3d88cca7
      Yinghai Lu 提交于
      got this on a test-system:
      
       calling  numaq_tsc_disable+0x0/0x39
       NUMAQ: disabling TSC
       initcall numaq_tsc_disable+0x0/0x39 returned 0 after 0 msecs
      
      that's because we should not be using arch_initcall to call numaq_tsc_disable.
      
      need to call it in setup_arch before time_init()/tsc_init()
      and call it in init_intel() to make the cpu feature bits right.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3d88cca7
  23. 12 7月, 2008 1 次提交
    • S
      x64, x2apic/intr-remap: add x2apic support, including enabling interrupt-remapping · 6e1cb38a
      Suresh Siddha 提交于
      x2apic support.  Interrupt-remapping must be enabled before enabling x2apic,
      this is needed to ensure that IO interrupts continue to work properly after the
      cpu mode is changed to x2apic(which uses 32bit extended physical/cluster
      apic id).
      
      On systems where apicid's are > 255, BIOS can handover the control to OS in
      x2apic mode. Or if the OS handover was in legacy xapic mode, check
      if it is capable of x2apic mode. And if we succeed in enabling
      Interrupt-remapping, then we can enable x2apic mode in the CPU.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: akpm@linux-foundation.org
      Cc: arjan@linux.intel.com
      Cc: andi@firstfloor.org
      Cc: ebiederm@xmission.com
      Cc: jbarnes@virtuousgeek.org
      Cc: steiner@sgi.com
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6e1cb38a
  24. 11 7月, 2008 3 次提交