1. 15 6月, 2012 1 次提交
    • R
      vt: fix race in vt_waitactive() · 2fc46915
      Rabin Vincent 提交于
      pm_restore_console() is called from the suspend/resume path, and this
      calls vt_move_to_console(), which calls vt_waitactive().
      
      There's a race in this path which causes the process which requests the
      suspend to sleep indefinitely waiting for an event which already
      happened:
      
      P1                                      P2
       vt_move_to_console()
        set_console()
          schedule_console_callback()
        vt_waitactive()
          check n == fg_console +1
                                             console_callback()
                                               switch_screen()
                                               vt_event_post() // no waiters
      
          vt_event_wait() // forever
      
      Fix the race by ensuring we're registered for the event before we check
      if it's already completed.
      Signed-off-by: NRabin Vincent <rabin.vincent@stericsson.com>
      Acked-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2fc46915
  2. 14 6月, 2012 10 次提交
  3. 13 6月, 2012 24 次提交
  4. 12 6月, 2012 2 次提交
  5. 09 6月, 2012 3 次提交