1. 27 3月, 2006 2 次提交
    • V
      [PATCH] i386: export: memory more than 4G through /proc/iomem · 10dbe196
      Vivek Goyal 提交于
      Currently /proc/iomem exports physical memory also apart from io device
      memory.  But on i386, it truncates any memory more than 4GB.  This leads to
      problems for kexec/kdump.
      
      Kexec reads /proc/iomem to determine the system memory layout and prepares a
      memory map based on that and passes it to the kernel being kexeced.  Given the
      fact that memory more than 4GB has been truncated, new kernel never gets to
      see and use that memory.
      
      Kdump also reads /proc/iomem to determine the physical memory layout of the
      system and encodes this informaiton in ELF headers.  After a crash new kernel
      parses these ELF headers being used by previous kernel and vmcore is prepared
      accordingly.  As memory more than 4GB has been truncated, kdump never sees
      that memory and never prepares ELF headers for it.  Hence vmcore is truncated
      and limited to 4GB even if there is more physical memory in the system.
      
      This patch exports memory more than 4GB through /proc/iomem on i386.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      10dbe196
    • J
      [PATCH] i386: pass proper trap numbers to die chain handlers · 20c0d2d4
      Jan Beulich 提交于
      Pass the trap number causing the call to notify_die() to the die
      notification handler chain in a number of instances.  Also, honor the
      return value from the handler chain invocation in die() as, through a
      debugger, the fault may have been fixed.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Acked-By: NAndi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      20c0d2d4
  2. 26 3月, 2006 8 次提交
  3. 24 3月, 2006 3 次提交
    • A
      [PATCH] kill include/linux/platform.h, default_idle() cleanup · cdb04527
      Adrian Bunk 提交于
      include/linux/platform.h contained nothing that was actually used except
      the default_idle() prototype, and is therefore removed by this patch.
      
      This patch does the following with the platform specific default_idle()
      functions on different architectures:
      - remove the unused function:
        - parisc
        - sparc64
      - make the needlessly global function static:
        - arm
        - h8300
        - m68k
        - m68knommu
        - s390
        - v850
        - x86_64
      - add a prototype in asm/system.h:
        - cris
        - i386
        - ia64
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Acked-by: NPatrick Mochel <mochel@digitalimplant.org>
      Acked-by: NKyle McMartin <kyle@parisc-linux.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cdb04527
    • A
      [PATCH] more-for_each_cpu-conversions fix · a7201156
      Andrew Morton 提交于
      I screwed up this conversion - we should be iterating across online CPUs, not
      possible ones.
      
      Spotted by Joe Perches <joe@perches.com>
      
      Cc: Dave Jones <davej@codemonkey.org.uk>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a7201156
    • 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
  4. 23 3月, 2006 26 次提交
  5. 22 3月, 2006 1 次提交
    • M
      [PATCH] Uninline sys_mmap common code (reduce binary size) · a7290ee0
      Michael Buesch 提交于
      Remove the inlining of the new vs old mmap system call common code.  This
      reduces the size of the resulting vmlinux for defconfig as follows:
      
      mb@pc1:~/develop/git/linux-2.6$ size vmlinux.mmap*
         text    data     bss     dec     hex filename
      3303749  521524  186564 4011837  3d373d vmlinux.mmapinline
      3303557  521524  186564 4011645  3d367d vmlinux.mmapnoinline
      
      The new sys_mmap2() has also one function call overhead removed, now.
      (probably it was already optimized to a jmp before, but anyway...)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a7290ee0