1. 26 Mar, 2007 3 commits
    • David Wilder's avatar
      [S390] kprobes: Align probe address. · b70842df
      David Wilder authored
      Running a probe on s390 with a probe address that is not 4 byte aligned
      results in a Kernel BUG.  The problem is that the stura instruction used
      by swap_instruction requires the destination address to be 4 byte aligned.
      As stura only writes 4 bytes, aligning to the next 4 byte aligned address
      results in the breakpoint instruction being stored past the probe address.
      The fix is to align the address backward (to the previous 4 byte aligned
      address) and writing the two byte breakpoint instruction in the appropriate
      bytes.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarDavid Wilder <dwilder@us.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      b70842df
    • Heiko Carstens's avatar
      [S390] Fix TCP/UDP pseudo header checksum computation. · afbc1e99
      Heiko Carstens authored
      git commit f994aae1 changed the
      function declaration of csum_tcpudp_nofold. Argument types were
      changed from unsigned long to __be32 (unsigned int). Therefore we
      lost the implicit type conversion that zeroed the upper half of the
      registers that are used to pass parameters. Since the inline assembly
      relied on this we ended up adding random values and wrong checksums
      were created.
      Showed only up on machines with more than 4GB since gcc produced code
      where the registers that are used to pass 'saddr' and 'daddr' previously
      contained addresses before calling this function.
      Fix this by using 32 bit arithmetics and convert code to C, since gcc
      produces better code than these hand-optimized versions.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      afbc1e99
    • Peter Oberparleiter's avatar
      [S390] dasd: Work around gcc bug. · 04439694
      Peter Oberparleiter authored
      gcc incorrectly removes initialization of register 0 in dasd diag
      inline assembly. Use different register to work around this compiler
      bug.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      04439694
  2. 25 Mar, 2007 4 commits
  3. 24 Mar, 2007 15 commits
  4. 23 Mar, 2007 18 commits