1. 07 Mar, 2007 37 commits
  2. 06 Mar, 2007 3 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
    • Nick Piggin's avatar
      [IA64] permon use-after-free fix · 41d5e5d7
      Nick Piggin authored
      Perfmon associates vmalloc()ed memory with a file descriptor, and installs
      a vma mapping that memory.  Unfortunately, the vm_file field is not filled
      in, so processes with mappings to that memory do not prevent the file from
      being closed and the memory freed.  This results in use-after-free bugs and
      multiple freeing of pages, etc.
      
      I saw this bug on an Altix on SLES9.  Haven't reproduced upstream but it
      looks like the same issue is there.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Cc: Stephane Eranian <eranian@hpl.hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      41d5e5d7
    • Alexandr Andreev's avatar
      [IA64] sync compat getdents · 50157b09
      Alexandr Andreev authored
      Add VERIFY_WRITE check in the beginning like compat_sys_getdents() (EINVAL vs
      EFAULT).
      Signed-off-by: default avatarAlexandr Andreev <aandreev@openvz.org>
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@openvz.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      50157b09