1. 18 8月, 2008 1 次提交
    • D
      x86: fix i486 suspend to disk CR4 oops · e532c06f
      David Fries 提交于
      arch/x86/power/cpu_32.c __save_processor_state calls read_cr4()
      only a i486 CPU doesn't have the CR4 register.  Trying to read it
      produces an invalid opcode oops during suspend to disk.
      
      Use the safe rc4 reading op instead. If the value to be written is
      zero the write is skipped.
      
      arch/x86/power/hibernate_asm_32.S
      done: swapped the use of %eax and %ecx to use jecxz for
      the zero test and jump over store to %cr4.
      restore_image: s/%ecx/%eax/ to be consistent with done:
      
      In addition to __save_processor_state, acpi_save_state_mem,
      efi_call_phys_prelog, and efi_call_phys_epilog had checks added
      (acpi restore was in assembly and already had a check for
      non-zero).  There were other reads and writes of CR4, but MCE and
      virtualization shouldn't be executed on a i486 anyway.
      Signed-off-by: NDavid Fries <david@fries.net>
      Acked-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e532c06f
  2. 03 7月, 2008 1 次提交
    • H
      x86: fix Intel Mac booting with EFI · 216705d2
      Hugh Dickins 提交于
      Fedora reports that mem_init()'s zap_low_mappings(), extended to SMP in
      61165d7a x86: fix app crashes after SMP
      resume causes 32-bit Intel Mac machines to reboot very early when
      booting with EFI.
      
      The EFI code appears to manage low mappings for itself when needed; but
      like many before it, confuses PSE with PAE.  So it has only been mapping
      half the space it needed when PSE but not PAE.  This remained unnoticed
      until we moved the SMP zap_low_mappings() before
      efi_enter_virtual_mode().  Presumably could have been noticed years ago
      if anyone ran a UP kernel on such machines?
      Reported-by: NPeter Jones <pjones@redhat.com>
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Peter Jones <pjones@redhat.com>
      Cc: Glauber Costa <gcosta@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Tested-by: NPeter Jones <pjones@redhat.com>
      216705d2
  3. 19 2月, 2008 1 次提交
  4. 30 1月, 2008 6 次提交
  5. 22 10月, 2007 1 次提交
    • B
      kexec: add BSS to resource tree · 00bf4098
      Bernhard Walle 提交于
      Add the BSS to the resource tree just as kernel text and kernel data are in
      the resource tree.  The main reason behind this is to avoid crashkernel
      reservation in that area.
      
      While it's not strictly necessary to have the BSS in the resource tree (the
      actual collision detection is done in the reserve_bootmem() function before),
      the usage of the BSS resource should be presented to the user in /proc/iomem
      just as Kernel data and Kernel code.
      
      Note: The patch currently is only implemented for x86 and ia64 (because
      efi_initialize_iomem_resources() has the same signature on i386 and ia64).
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NBernhard Walle <bwalle@suse.de>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Cc: <linux-arch@vger.kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00bf4098
  6. 17 10月, 2007 1 次提交
  7. 11 10月, 2007 2 次提交
  8. 18 7月, 2007 1 次提交
  9. 09 5月, 2007 1 次提交
  10. 03 5月, 2007 1 次提交
  11. 05 2月, 2007 1 次提交
  12. 07 12月, 2006 1 次提交
  13. 04 10月, 2006 1 次提交
  14. 30 9月, 2006 1 次提交
  15. 01 7月, 2006 1 次提交
  16. 28 6月, 2006 1 次提交
  17. 27 3月, 2006 2 次提交
  18. 24 3月, 2006 1 次提交
    • L
      [PATCH] PCI: resource address mismatch · b408cbc7
      Linus Torvalds 提交于
      On Tue, 21 Feb 2006, Ivan Kokshaysky wrote:
      > There are two bogus entries in the BIOS memory map table which are
      > conflicting with a prefetchable memory range of the AGP bridge:
      >
      >  BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
      >  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
      >
      > 0000:00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) (prog-if 00 [Normal decode])
      > 	Flags: bus master, fast devsel, latency 0
      > 	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
      > 	I/O behind bridge: 0000c000-0000cfff
      > 	Memory behind bridge: e7e00000-e7efffff
      > 	Prefetchable memory behind bridge: fec00000-ffcfffff
      > 					   ^^^^^^^^^^^^^^^^^
      
      Yes. However, it's pretty clear that the e820 entries are there for a
      reason. Probably they are a hack by the BIOS maintainers to keep Windows
      from stomping/moving that region, exactly because they want to keep the
      bridge where it is (or, it's actually for the BIOS itself - the BIOS
      tables are a horrid mess, and BIOS engineers are pretty hacky people:
      they'll add random entries to make their own broken algorithms do the
      "right thing").
      
      > Starting from 2.6.13, kernel tries to resolve that sort of conflicts,
      > so that prefetch window of the bridge and the framebuffer memory behind
      > it get moved to 0x10000000.
      
      I think we could (and probably should) solve this another way: consider
      the ACPI "reserved regions" from the e820 map exactly the same way that we
      do other ACPI hints - they should restrict _new_ allocations, but not
      impact stuff we figure out on our own.
      
      Basically, right now we assign _unassigned_ resources at "fs_initcall"
      time. If we were to add in the e820 "reserved region" stuff before that
      (but after we've done PCI discovery), we'd probably do the right thing.
      
      Right now we do the e820 reserved regions very early indeed: we call
      "register_memory()" from setup_arch(). We could move at least part of it
      (the part that registers the resources) down a bit.
      
      Here's a test-patch. I'm not saying we should absolutely do this, but it
      might be interesting to try...
      
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: <bjk@luxsci.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b408cbc7
  19. 22 3月, 2006 1 次提交
  20. 07 3月, 2006 1 次提交
  21. 25 2月, 2006 1 次提交
    • J
      [PATCH] x86: fix broken SMP boot sequence · 2b932f6c
      James Bottomley 提交于
      Recent GDT changes broke the SMP boot sequence if the booting CPU is
      numbered anything other than zero.  There's also a subtle source of error
      in that the boot time CPU now uses cpu_gdt_table (which is actually the GDT
      for booting CPUs in head.S).  This patch fixes both problems by making GDT
      descriptors themselves allocated from a per_cpu area and switching to them
      in cpu_init(), which now means that cpu_gdt_table is exclusively used for
      booting CPUs again.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Zachary Amsden <zach@vmware.com>
      Cc: Matt Tolentino <metolent@snoqualmie.dp.intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2b932f6c
  22. 05 9月, 2005 3 次提交
    • Z
      [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management · 4d37e7e3
      Zachary Amsden 提交于
      i386 inline assembler cleanup.
      
      This change encapsulates descriptor and task register management.  Also,
      it is possible to improve assembler generation in two cases; savesegment
      may store the value in a register instead of a memory location, which
      allows GCC to optimize stack variables into registers, and MOV MEM, SEG
      is always a 16-bit write to memory, making the casting in math-emu
      unnecessary.
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4d37e7e3
    • Z
      [PATCH] i386: inline asm cleanup · 4bb0d3ec
      Zachary Amsden 提交于
      i386 Inline asm cleanup.  Use cr/dr accessor functions.
      
      Also, a potential bugfix.  Also, some CR accessors really should be volatile.
      Reads from CR0 (numeric state may change in an exception handler), writes to
      CR4 (flipping CR4.TSD) and reads from CR2 (page fault) prevent instruction
      re-ordering.  I did not add memory clobber to CR3 / CR4 / CR0 updates, as it
      was not there to begin with, and in no case should kernel memory be clobbered,
      except when doing a TLB flush, which already has memory clobber.
      
      I noticed that page invalidation does not have a memory clobber.  I can't find
      a bug as a result, but there is definitely a potential for a bug here:
      
      #define __flush_tlb_single(addr) \
      	__asm__ __volatile__("invlpg %0": :"m" (*(char *) addr))
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4bb0d3ec
    • M
      [PATCH] x86: fix EFI memory map parsing · 7ae65fd3
      Matt Tolentino 提交于
      The memory descriptors that comprise the EFI memory map are not fixed in
      stone such that the size could change in the future.  This uses the memory
      descriptor size obtained from EFI to iterate over the memory map entries
      during boot.  This enables the removal of an x86 specific pad (and ifdef)
      in the EFI header.  I also couldn't stomach the broken up nature of the
      function to put EFI runtime calls into virtual mode any longer so I fixed
      that up a bit as well.
      
      For reference, this patch only impacts x86.
      Signed-off-by: NMatt Tolentino <matthew.e.tolentino@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7ae65fd3
  23. 26 6月, 2005 1 次提交
  24. 17 4月, 2005 2 次提交
    • M
      [PATCH] efi: eliminate bad section references · c41f5eb3
      maximilian attems 提交于
      Randy please double check especially this one.
      there may be a better solution.
      
      Fix efi section references:
       remove __initdata for struct efi efi_phys 
       and struct efi_memory_map memmap
      
      Error: ./arch/i386/kernel/efi.o .text refers to 000000d3 R_386_32
      .init.data
      Error: ./arch/i386/kernel/efi.o .text refers to 000000ff R_386_32
      .init.data
      
      efi_memmap_walk (which is not __init nor static) 
      accesses both efi_phys and memmap.
      Signed-off-by: Nmaximilian attems <janitor@sternwelten.at>
      Acked-by: NRandy Dunlap <rddunlap@osdl.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c41f5eb3
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4