1. 27 Jul, 2010 2 commits
    • Martin Schwidefsky's avatar
      [S390] etr: fix clock synchronization race · 33fea794
      Martin Schwidefsky authored
      The etr events switch-to-local and sync-check disable the synchronous clock
      and schedule a work queue that tries to get the clock back into sync.
      If another switch-to-local or sync-check event occurs while the work queue
      function etr_work_fn still runs the eacr.es bit and the clock_sync_word can
      become inconsistent because check_sync_clock only uses the clock_sync_word
      to determine if the clock is in sync or not. The second pass of the
      etr_work_fn will reset the eacr.es bit but will leave the clock_sync_word
      intact. Fix this race by moving the reset of the eacr.es bit into the
      switch-to-local and sync-check functions and by checking the eacr.es bit
      as well to decide if the clock needs to be synced.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      33fea794
    • Heiko Carstens's avatar
      [S390] Fix IRQ tracing in case of PER · f5cdac27
      Heiko Carstens authored
      In case user space is single stepped (PER) the program check handler
      claims too early that IRQs are enabled on the return path.
      Subsequent checks will notice that the IRQ mask in the PSW and
      what lockdep thinks the IRQ mask should be do not correlate and
      therefore will print a warning to the console and disable lockdep.
      
      Fix this by doing all the work within the correct context.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      f5cdac27
  2. 26 Jul, 2010 38 commits