1. 14 Jan, 2006 2 commits
    • Nicolas Pitre's avatar
      [ARM] 3102/1: ARM EABI: stack pointer must be 64-bit aligned after a CPU exception · 2dede2d8
      Nicolas Pitre authored
      Patch from Nicolas Pitre
      
      The ARM EABI says that the stack pointer has to be 64-bit aligned for
      reasons already mentioned in patch #3101 when calling C functions.
      
      We therefore must verify and adjust sp accordingly when taking an
      exception from kernel mode since sp might not necessarily be 64-bit
      aligned if the exception occurs in the middle of a kernel function.
      
      If the exception occurs while in user mode then no sp fixup is needed as
      long as sizeof(struct pt_regs) as well as any additional syscall data
      stack space remain multiples of 8.
      Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      2dede2d8
    • Nicolas Pitre's avatar
      [ARM] 3101/1: ARM EABI: slab memory must be 64-bit aligned · da2b1cd6
      Nicolas Pitre authored
      Patch from Nicolas Pitre
      
      Although ARM is still using 32-bit pointers, version 5 and later
      versions of the ARM architecture introduced the ldrd and strd
      instructions to move 64-bit data which must be 64-bit aligned in memory,
      and the EABI includes new constraints on structure data alignment to
      allow for the compiler to use those instructions. This means that any
      slab allocation must start on a 64-bit boundary which is not equivalent
      to BYTES_PER_WORD, especially on those architecture versions that
      implements the ldrd/strd instructions.
      
      Overriding the default alignment disables some slab debug features. If
      those debug features are really needed then the kernel will have to be
      compiled for version 4 of the ARM architecture.
      Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      da2b1cd6
  2. 13 Jan, 2006 8 commits
  3. 12 Jan, 2006 30 commits