An error occurred fetching the project authors.
  1. 26 Mar, 2009 1 commit
  2. 20 Oct, 2008 1 commit
  3. 22 Sep, 2008 1 commit
    • Jay Lan's avatar
      [IA64] kexec fails on systems with blocks of uncached memory · d3758f87
      Jay Lan authored
      Currently a memory segment in memory map with attribute of EFI_MEMORY_UC
      is denoted as "System RAM" in /proc/iomem, while memory of attribute
      (EFI_MEMORY_WB|EFI_MEMORY_UC) is also labeled the same.
      
      The kexec utility then includes uncached memory as part of vmcore. The
      kdump kernel MCA'ed when it tries to save the vmcore to a disk. A normal
      "cached" access may cause MCAs.
      
      This patch would label memory with attribute of EFI_MEMORY_UC only as
      "Uncached RAM" so that kexec would know not to include it in the vmcore.
      I will submit a separate kexec-tools patch to the kexec list.
      Signed-off-by: default avatarJay Lan <jlan@sgi.com>
      Acked-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      d3758f87
  4. 04 Apr, 2008 2 commits
  5. 06 Mar, 2008 2 commits
    • Simon Horman's avatar
      [IA64] update efi region debugging to use MB, GB and TB as well as KB · 818c7e86
      Simon Horman authored
      When EFI_DEBUG is defined to a non-zero value in arch/ia64/kernel/efi.c,
      the efi memory regions are displayed. This patch enhances the
      display code in a few ways:
      
      1. Use TB, GB and MB as well as KB as units.
         Although this introduces rounding errors (KB doesn't as
         size is always a multiple of 4Kb), it does make
         things a lot more readable.
      
         Also as the range is also shown, it is possible to note the exact size
         if it is important. In my experience, the size field is mostly useful
         for getting a general idea of the size of a region.
      
         On the rx2620 that I use, there actually is an 8TB region (though not
         backed by physical memory, and 8TB really is a lot more readable than
         8589934592KB.
      
      2. pad the size field with leading spaces to further improve readability
      
         ...
         ... (   8MB)
         ... ( 928MB)
         ... (   3MB)
         ...
      
         vs
      
         ...
         ... (8MB)
         ... (928MB)
         ... (3MB)
         ...
      
      3. Pad the attr field out to 64bits using leading zeros,
         to further improve readability.
      
         ...
         mem05: type= 2, attr=0x0000000000000008, range=[0x0000000004000000-0x000000000481f000) (   8MB)
         mem06: type= 7, attr=0x0000000000000008, range=[0x000000000481f000-0x000000003e876000) ( 928MB)
         mem07: type= 5, attr=0x8000000000000008, range=[0x000000003e876000-0x000000003eb8e000) (   3MB)
         mem08: type= 4, attr=0x0000000000000008, range=[0x000000003eb8e000-0x000000003ee7a000) (   2MB)
         ...
      
         ...
         mem05: type= 2, attr=0x8, range=[0x0000000004000000-0x000000000481f000) (   8MB)
         mem06: type= 7, attr=0x8, range=[0x000000000481f000-0x000000003e876000) ( 928MB)
         mem07: type= 5, attr=0x8000000000000008, range=[0x000000003e876000-0x000000003eb8e000) (   3MB)
         mem08: type= 4, attr=0x8, range=[0x000000003eb8e000-0x000000003ee7a000) (   2MB)
         ...
      
      4. Use %d instead of %u for the index field, as i is a signed int.
      
      N.B: This code is not compiled unless EFI_DEBUG is non 0.
      Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      818c7e86
    • Harvey Harrison's avatar
      [IA64] remove remaining __FUNCTION__ occurrences · d4ed8084
      Harvey Harrison authored
      __FUNCTION__ is gcc-specific, use __func__
      
      Long lines have been kept where they exist, some small spacing changes
      have been done.
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      d4ed8084
  6. 04 Feb, 2008 4 commits
  7. 08 Dec, 2007 1 commit
  8. 15 Nov, 2007 1 commit
  9. 06 Nov, 2007 1 commit
  10. 29 Oct, 2007 1 commit
  11. 22 Oct, 2007 1 commit
    • Bernhard Walle's avatar
      kexec: add BSS to resource tree · 00bf4098
      Bernhard Walle authored
      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: default avatarBernhard 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: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      00bf4098
  12. 19 Oct, 2007 1 commit
  13. 17 Jul, 2007 1 commit
    • Mel Gorman's avatar
      handle kernelcore=: generic · ed7ed365
      Mel Gorman authored
      This patch adds the kernelcore= parameter for x86.
      
      Once all patches are applied, a new command-line parameter exist and a new
      sysctl.  This patch adds the necessary documentation.
      
      From: Yasunori Goto <y-goto@jp.fujitsu.com>
      
        When "kernelcore" boot option is specified, kernel can't boot up on ia64
        because of an infinite loop.  In addition, the parsing code can be handled
        in an architecture-independent manner.
      
        This patch uses common code to handle the kernelcore= parameter.  It is
        only available to architectures that support arch-independent zone-sizing
        (i.e.  define CONFIG_ARCH_POPULATES_NODE_MAP).  Other architectures will
        ignore the boot parameter.
      
      [bunk@stusta.de: make cmdline_parse_kernelcore() static]
      Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
      Signed-off-by: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
      Acked-by: default avatarAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed7ed365
  14. 08 May, 2007 1 commit
  15. 30 Mar, 2007 1 commit
    • Bjorn Helgaas's avatar
      [IA64] fail mmaps that span areas with incompatible attributes · 6d40fc51
      Bjorn Helgaas authored
      Example memory map (from HP sx1000 with VGA enabled):
          0x00000 - 0x9FFFF supports only WB (cacheable) access
          0xA0000 - 0xBFFFF supports only UC (uncacheable) access
          0xC0000 - 0xFFFFF supports only WB (cacheable) access
      
      Some versions of X map the entire 0x00000-0xFFFFF area at once.  With the
      example above, this mmap must fail because there's no memory attribute that's
      safe for the entire area.
      
      Prior to this patch, we performed the mmap with a UC mapping.  When X
      accessed the WB memory at 0xC0000, it caused an MCA.  The crash can happen
      when mapping 0xC0000 from either /dev/mem or a /sys/.../legacy_mem file.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      6d40fc51
  16. 08 Mar, 2007 2 commits
  17. 06 Mar, 2007 2 commits
    • Magnus Damm's avatar
      [IA64] kexec: Use EFI_LOADER_DATA for ELF core header · cee87af2
      Magnus Damm authored
      The address where the ELF core header is stored is passed to the secondary
      kernel as a kernel command line option.  The memory area for this header is
      also marked as a separate EFI memory descriptor on ia64.
      
      The separate EFI memory descriptor is at the moment of the type
      EFI_UNUSABLE_MEMORY.  With such a type the secondary kernel skips over the
      entire memory granule (config option, 16M or 64M) when detecting memory.
      If we are lucky we will just lose some memory, but if we happen to have
      data in the same granule (such as an initramfs image), then this data will
      never get mapped and the kernel bombs out when trying to access it.
      
      So this is an attempt to fix this by changing the EFI memory descriptor
      type into EFI_LOADER_DATA.  This type is the same type used for the kernel
      data and for initramfs.  In the secondary kernel we then handle the ELF
      core header data the same way as we handle the initramfs image.
      
      This patch contains the kernel changes to make this happen.  Pretty
      straightforward, we reserve the area in reserve_memory().  The address for
      the area comes from the kernel command line and the size comes from the
      specialized EFI parsing function vmcore_find_descriptor_size().
      
      The kexec-tools-testing code for this can be found here:
      http://lists.osdl.org/pipermail/fastboot/2007-February/005983.htmlSigned-off-by: default avatarMagnus Damm <magnus@valinux.co.jp>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      cee87af2
    • Horms's avatar
      [IA64] point saved_max_pfn to the max_pfn of the entire system · f4a57099
      Horms authored
      Make saved_max_pfn point to max_pfn of entire system.
      
      Without this patch is so that vmcore is zero length on ia64.  This is
      because saved_max_pfn was wrongly being set to the max_pfn of the crash
      kernel's address space, rather than the max_pfg on the physical memory of
      the machine - the whole purpose of vmcore is to access physical memory that
      is not part of the crash kernel's addresss space.
      Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarZou Nan hai <nanhai.zou@intel.com>
      Sort-Of-Acked-By: default avatarJay Lan <jlan@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      f4a57099
  18. 12 Feb, 2007 2 commits
  19. 05 Feb, 2007 1 commit
  20. 07 Dec, 2006 2 commits
  21. 02 Aug, 2006 1 commit
  22. 10 Jul, 2006 1 commit
    • Lennert Buytenhek's avatar
      [PATCH] make valid_mmap_phys_addr_range() take a pfn · 06c67bef
      Lennert Buytenhek authored
      Newer ARMs have a 40 bit physical address space, but mapping physical
      memory above 4G needs a special page table format which we (currently?) do
      not use for userspace mappings, so what happens instead is that mapping an
      address >= 4G will happily discard the upper bits and wrap.
      
      There is a valid_mmap_phys_addr_range() arch hook where we could check for
      >= 4G addresses and deny the mapping, but this hook takes an unsigned long
      address:
      
      	static inline int valid_mmap_phys_addr_range(unsigned long addr, size_t size);
      
      And drivers/char/mem.c:mmap_mem() calls it like this:
      
      	static int mmap_mem(struct file * file, struct vm_area_struct * vma)
      	{
      		size_t size = vma->vm_end - vma->vm_start;
      
      		if (!valid_mmap_phys_addr_range(vma->vm_pgoff << PAGE_SHIFT, size))
      
      So that's not much help either.
      
      This patch makes the hook take a pfn instead of a phys address.
      Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
      Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      06c67bef
  23. 30 Jun, 2006 1 commit
  24. 08 May, 2006 1 commit
    • Bjorn Helgaas's avatar
      [IA64] rework memory attribute aliasing · 32e62c63
      Bjorn Helgaas authored
      This closes a couple holes in our attribute aliasing avoidance scheme:
      
        - The current kernel fails mmaps of some /dev/mem MMIO regions because
          they don't appear in the EFI memory map.  This keeps X from working
          on the Intel Tiger box.
      
        - The current kernel allows UC mmap of the 0-1MB region of
          /sys/.../legacy_mem even when the chipset doesn't support UC
          access.  This causes an MCA when starting X on HP rx7620 and rx8620
          boxes in the default configuration.
      
      There's more detail in the Documentation/ia64/aliasing.txt file this
      adds, but the general idea is that if a region might be covered by
      a granule-sized kernel identity mapping, any access via /dev/mem or
      mmap must use the same attribute as the identity mapping.
      
      Otherwise, we fall back to using an attribute that is supported
      according to the EFI memory map, or to using UC if the EFI memory
      map doesn't mention the region.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      32e62c63
  25. 26 Mar, 2006 2 commits
  26. 07 Feb, 2006 2 commits
  27. 09 Jan, 2006 1 commit
    • Bjorn Helgaas's avatar
      [PATCH] /dev/mem: validate mmap requests · 80851ef2
      Bjorn Helgaas authored
      Add a hook so architectures can validate /dev/mem mmap requests.
      
      This is analogous to validation we already perform in the read/write
      paths.
      
      The identity mapping scheme used on ia64 requires that each 16MB or
      64MB granule be accessed with exactly one attribute (write-back or
      uncacheable).  This avoids "attribute aliasing", which can cause a
      machine check.
      
      Sample problem scenario:
        - Machine supports VGA, so it has uncacheable (UC) MMIO at 640K-768K
        - efi_memmap_init() discards any write-back (WB) memory in the first granule
        - Application (e.g., "hwinfo") mmaps /dev/mem, offset 0
        - hwinfo receives UC mapping (the default, since memmap says "no WB here")
        - Machine check abort (on chipsets that don't support UC access to WB
          memory, e.g., sx1000)
      
      In the scenario above, the only choices are
        - Use WB for hwinfo mmap.  Can't do this because it causes attribute
          aliasing with the UC mapping for the VGA MMIO space.
        - Use UC for hwinfo mmap.  Can't do this because the chipset may not
          support UC for that region.
        - Disallow the hwinfo mmap with -EINVAL.  That's what this patch does.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      80851ef2
  28. 10 Nov, 2005 1 commit
  29. 19 Sep, 2005 1 commit