1. 28 Oct, 2009 33 commits
  2. 27 Oct, 2009 6 commits
  3. 26 Oct, 2009 1 commit
    • Michal Ostrowski's avatar
      PPPoE: Fix flush/close races. · fb64bb56
      Michal Ostrowski authored
      Be more careful about the state of pointers during tear-down.
      The "pppoe_dev" field can only be looked at safely while holding socket locks.
      This subsequently allows for the flush_lock to be killed.
      
      We depend on the PPPOX_CONNECTED state to tell us that that those fields are
      valid, so whoever clears that state (pppox_unbind_sock()) is responsible for
      the dev_put() call.
      
      We also have to ensure that we delete_item() on all sockets before they are
      cleaned up.
      
      The need for these changes has been exposed by scenarios wherein namespace
      bindings of ethernet devices change while there are ongoing PPPoE sessions,
      which resulted in oopses due to unusual socket connection termination paths,
      exposing these issues.
      Signed-off-by: default avatarMichal Ostrowski <mostrows@gmail.com>
      Reviewed-by: default avatarCyril Gorcunov <gorcunov@gmail.com>
      Reported-by: default avatarDenys Fedoryschenko <denys@visp.net.lb>
      Tested-by: default avatarDenys Fedoryschenko <denys@visp.net.lb>
      fb64bb56