[Michal Ostrowski - Mon, Oct 26, 2009 at 02:51:52PM -0500] | 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: Michal Ostrowski <mostrows@xxxxxxxxx> | Reviewed-by: Cyril Gorcunov <gorcunov@xxxxxxxxx> ... Thanks a lot Michal! I think we should add as well Reported-by: Denys Fedoryschenko <denys@xxxxxxxxxxx> Tested-by: Denys Fedoryschenko <denys@xxxxxxxxxxx> -- Cyrill -- To unsubscribe from this list: send the line "unsubscribe linux-ppp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html