1. 04 Nov, 2005 2 commits
    • Michael Ellerman's avatar
      powerpc: Fix random memory corruption in merged elf.h · 30415f6a
      Michael Ellerman authored
      The merged verison of ELF_CORE_COPY_REGS is basically the PPC64 version, with
      a memset that came from PPC and a few types abstracted out into #defines. But
      it's not _quite_ right.
      
      The first problem is we calculate the number of registers with:
              nregs = sizeof(struct pt_regs) / sizeof(ELF_GREG_TYPE)
      
      For a 32-bit process on a 64-bit kernel that's bogus because the registers are
      64 bits, but ELF_GREG_TYPE is u32, so nregs == 88 which is wrong.
      
      The other problem is the memset, which assumes a struct pt_regs is smaller
      than a struct elf_regs. For a 32-bit process on a 64-bit kernel that's false.
      
      The fix is to calculate the number of regs using sizeof(unsigned long), which
      should always be right, and just memset the whole damn thing _before_ copying
      the registers in.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      30415f6a
    • Michael Ellerman's avatar
      powerpc: Implement smp_release_cpus() in C not asm · b8f51021
      Michael Ellerman authored
      There's no reason for smp_release_cpus() to be asm, and most people can make
      more sense of C code. Add an extern declaration to smp.h and remove the custom
      one in machine_kexec.c
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      b8f51021
  2. 03 Nov, 2005 8 commits
  3. 02 Nov, 2005 30 commits