1. 22 9月, 2008 1 次提交
  2. 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
  3. 07 9月, 2008 4 次提交
  4. 22 8月, 2008 1 次提交
  5. 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
  6. 12 8月, 2008 1 次提交
  7. 09 8月, 2008 1 次提交
  8. 24 7月, 2008 1 次提交
  9. 22 7月, 2008 1 次提交
  10. 20 7月, 2008 2 次提交
  11. 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
  12. 16 7月, 2008 2 次提交
  13. 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
  14. 11 7月, 2008 3 次提交
  15. 09 7月, 2008 2 次提交
  16. 08 7月, 2008 14 次提交