1. 29 10月, 2009 4 次提交
    • H
      [S390] smp: fix sigp sense handling · b3dcf3de
      Heiko Carstens 提交于
      sigp sense only returns the status of a cpu if it is non zero. If the
      status of the sensed cpu is all zeros condition code 0 (accpeted) is
      set and no status bits are returned.
      The current code however assumes that a status was returned and tests
      bits in it. This means uninitalized data is accessed with random
      results.
      Worst case is that the code that checks if cpu is offline on cpu
      hotplug assumes that the target cpu is offline while it is still
      running. This leads potentially to memory corruption since resources
      that are still needed by the target cpu will be freed and could be
      resused while still in use.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b3dcf3de
    • H
      [S390] smp: fix sigp stop handling · f8501ba7
      Heiko Carstens 提交于
      According to the architecture a cpu must not necessarily enter stopped
      state after completion of a sigp instruction with "stop" order code.
      So remove the BUG() statement after self sending sigp stop to avoid
      that it ever gets reached.
      Also add a sigp busy check to make sure that the order gets delivered.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f8501ba7
    • M
      [S390] cputime: fix overflow on 31 bit systems · 70f5dc51
      Martin Schwidefsky 提交于
      The cputime_to_msecs / cputime_to_clock_t and cputime64_to_clock_t
      cause fixpoint divide exceptions if the cputime is too large.
      On a machine that collected 49.7 days worth of idle time reading
      from /proc/stat will generate oopses like this:
      
      Kernel BUG at 001b0c92 [verbose debug info unavailable]
      fixpoint divide exception: 0009 [#13] SMP
      Modules linked in: ipv6
      CPU: 1 Tainted: G      D   2.6.27.10 #5
      Process cat (pid: 21352, task: 1fb34138, ksp: 1d2a3d98)
      Krnl PSW : 070c2000 801b0c92 (show_stat+0x2ca/0x68c)
                 R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0
      Krnl GPRS: 00000001 00001388 00000bb8 0015d2a1
                 00000000 00000000 000003e8 0001fd91
                 00000000 00000000 0000129d eecd2ff0
                 1cc533b9 0036f780 801b0bce 1d2a3cc0
      Krnl Code: 801b0c86: f18890abf198       mvo     171(9,%r9),408(9,%r15)
                 801b0c8c: 98abf170           lm      %r10,%r11,368(%r15)
                 801b0c90: 1da1               dr      %r10,%r1
                >801b0c92: 90abf170           stm     %r10,%r11,368(%r15)
                 801b0c96: 98abf190           lm      %r10,%r11,400(%r15)
                 801b0c9a: 1da1               dr      %r10,%r1
                 801b0c9c: 90abf190           stm     %r10,%r11,400(%r15)
                 801b0ca0: 18a3               lr      %r10,%r3
      Call Trace:
      ([<00000000001b09f4>] show_stat+0x2c/0x68c)
       [<000000000018dcee>] seq_read+0xb2/0x364
       [<00000000001a9980>] proc_reg_read+0x68/0x98
       [<00000000001705ee>] vfs_read+0x6e/0xe8
       [<0000000000170732>] sys_read+0x36/0x78
       [<000000000010f750>] sysc_do_restart+0x12/0x16
       [<0000000077f3ad6a>] 0x77f3ad6a
       <4>---[ end trace 1436ea9559d3de9e ]---
      Reported-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      70f5dc51
    • H
      [S390] smp: fix prefix handling of offlined cpus · 4f8048ee
      Heiko Carstens 提交于
      Offlined cpus still have valid prefix register contents. Dumpers
      will store the register contents of a cpu to the location where its
      prefix register points to.
      For offlined cpus the area (lowcore) has been freed and the dumper
      would write the uninteresting contents of the offline cpu to a memory
      location which might be in use by some other component and destroy
      valueable information.
      To fix this set the prefix register of offline cpus to absolute
      address zero again. This prevents the current dumpers to write to
      random memory locations.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4f8048ee
  2. 14 10月, 2009 2 次提交
  3. 06 10月, 2009 12 次提交
  4. 04 10月, 2009 1 次提交
  5. 24 9月, 2009 5 次提交
  6. 23 9月, 2009 12 次提交
  7. 22 9月, 2009 4 次提交