1. 11 Apr, 2015 12 commits
  2. 10 Apr, 2015 6 commits
  3. 07 Apr, 2015 7 commits
  4. 01 Apr, 2015 7 commits
  5. 31 Mar, 2015 6 commits
  6. 28 Mar, 2015 2 commits
    • Michael Ellerman's avatar
      selftests/powerpc: Add a test of the switch_endian() syscall · 4cd968ef
      Michael Ellerman authored
      This adds a test of the switch_endian() syscall we added in the previous
      commit.
      
      We test it by calling the endian switch syscall, and then executing some
      code in the other endian to check everything went as expected. That code
      checks registers we expect to be maintained are. If the endian switch
      failed to happen that code sequence will be illegal and cause the test
      to abort.
      
      We then switch back to the original endian, do the same checks and
      finally write a success message and exit(0).
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      4cd968ef
    • Michael Ellerman's avatar
      powerpc: Add a proper syscall for switching endianness · 529d235a
      Michael Ellerman authored
      We currently have a "special" syscall for switching endianness. This is
      syscall number 0x1ebe, which is handled explicitly in the 64-bit syscall
      exception entry.
      
      That has a few problems, firstly the syscall number is outside of the
      usual range, which confuses various tools. For example strace doesn't
      recognise the syscall at all.
      
      Secondly it's handled explicitly as a special case in the syscall
      exception entry, which is complicated enough without it.
      
      As a first step toward removing the special syscall, we need to add a
      regular syscall that implements the same functionality.
      
      The logic is simple, it simply toggles the MSR_LE bit in the userspace
      MSR. This is the same as the special syscall, with the caveat that the
      special syscall clobbers fewer registers.
      
      This version clobbers r9-r12, XER, CTR, and CR0-1,5-7.
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      529d235a