1. 14 Nov, 2009 5 commits
  2. 13 Nov, 2009 8 commits
    • Christian Borntraeger's avatar
      [S390] s390: fix single stepping on svc0 · bcc6525f
      Christian Borntraeger authored
      On s390 there are two ways of specifying the system call number for
      the svc instruction. The standard way is to use the immediate field
      in the instruction (or to use EXecute for values unknown during
      assemble time). This can encode 256 system calls.
      The kernel ABI also allows to put the system call number in r1 and
      then execute svc 0 to enable system call numbers > 255.
      
      It turns out that single stepping svc 0 is broken, since the PER
      program check handler uses r1. We have to use a different register.
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      bcc6525f
    • Martin Schwidefsky's avatar
      [S390] sclp: undo quiesce handler override on resume · 8b94c1ed
      Martin Schwidefsky authored
      In a system where the ctrl-alt-del init action initiated by signal
      quiesce suspends the machine the quiesce handler override for
      _machine_restart, _machine_halt and _machine_power_off needs to be
      undone, otherwise the override is still present in the resumed
      system. The next shutdown would then load the quiesce state psw
      instead of performing the correct shutdown action.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      8b94c1ed
    • Martin Schwidefsky's avatar
      [S390] reset cputime accounting after IPL from NSS · b89031e0
      Martin Schwidefsky authored
      After an IPL from NSS the uptime of the system is incorrect. The reason
      is that the startup code in head.S is not executed in case of an IPL
      from NSS. Due to that sched_clock_base_cc which is used to initialze
      wall_to_monotonic contains the time stamp when the NSS has been created
      instead of the time stamp of the system start.
      
      Reinitialize the cputime accounting values in create_kernel_nss after
      the SAVESYS CP command that created the NSS segment.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b89031e0
    • Gerald Schaefer's avatar
      [S390] monreader: fix use after free bug with suspend/resume · ccaf6553
      Gerald Schaefer authored
      The monreader device driver doesn't set dev->driver_data to NULL after
      freeing the corresponding data structure. This leads to a use after
      free bug in the freeze/thaw suspend/resume functions after the device
      has been opened and closed once. Fix this by clearing dev->driver_data
      in the close() function.
      Signed-off-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      ccaf6553
    • NeilBrown's avatar
      md/raid5: Allow dirty-degraded arrays to be assembled when only party is degraded. · c148ffdc
      NeilBrown authored
      Normally is it not safe to allow a raid5 that is both dirty and
      degraded to be assembled without explicit request from that admin, as
      it can cause hidden data corruption.
      This is because 'dirty' means that the parity cannot be trusted, and
      'degraded' means that the parity needs to be used.
      
      However, if the device that is missing contains only parity, then
      there is no issue and assembly can continue.
      This particularly applies when a RAID5 is being converted to a RAID6
      and there is an unclean shutdown while the conversion is happening.
      
      So check for whether the degraded space only contains parity, and
      in that case, allow the assembly.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      c148ffdc
    • NeilBrown's avatar
      Don't unconditionally set in_sync on newly added device in raid5_reshape · 7ef90146
      NeilBrown authored
      When a reshape finds that it can add spare devices into the array,
      those devices might already be 'in_sync' if they are beyond the old
      size of the array, or they might not if they are within the array.
      
      The first case happens when we change an N-drive RAID5 to an
      N+1-drive RAID5.
      The second happens when we convert an N-drive RAID5 to an
      N+1-drive RAID6.
      
      So set the flag more carefully.
      Also, ->recovery_offset is only meaningful when the flag is clear,
      so only set it in that case.
      
      This change needs the preceding two to ensure that the non-in_sync
      device doesn't get evicted from the array when it is stopped, in the
      case where v0.90 metadata is used.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      7ef90146
    • NeilBrown's avatar
      md: allow v0.91 metadata to record devices as being active but not in-sync. · 0261cd9f
      NeilBrown authored
      This is a combination that didn't really make sense before.
      However when a reshape is converting e.g. raid5 -> raid6, the extra
      device is not fully in-sync, but is certainly active and contains
      important data.
      So allow that start to be meaningful and in particular get
      the 'recovery_offset' value (which is needed for any non-in-sync
      active device) from the reshape_position.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      0261cd9f
    • Linus Torvalds's avatar
      Linux 2.6.32-rc7 · 156171c7
      Linus Torvalds authored
      156171c7
  3. 12 Nov, 2009 27 commits