Hi Greg. This is for 4.9. This is a follow-up to "fix l2tp use-after-free in pppol2tp_sendmsg" for 4.14. Pulling on the thread pulled in many other earlier locking fixes in between 4.9 and 4.14. I've done some minor rework on a few of these to avoid pulling in refcount as a replacement for atomic which would have meant 10+ more patches (I still had compilation errors at 10). Some minor other patch commutation was needed and where it wasn't completely trivial, I've added a note to the commit messages. The series does include a few non-fixes, but they look safe and mean that the fixes (and other backports) apply more cleanly. Regards, Giuliano. Asbjørn Sloth Tønnesen (3): net: l2tp: export debug flags to UAPI net: l2tp: deprecate PPPOL2TP_MSG_* in favour of L2TP_MSG_* net: l2tp: ppp: change PPPOL2TP_MSG_* => L2TP_MSG_* Guillaume Nault (17): l2tp: remove useless duplicate session detection in l2tp_netlink l2tp: remove l2tp_session_find() l2tp: define parameters of l2tp_session_get*() as "const" l2tp: define parameters of l2tp_tunnel_find*() as "const" l2tp: initialise session's refcount before making it reachable l2tp: hold tunnel while looking up sessions in l2tp_netlink l2tp: hold tunnel while processing genl delete command l2tp: hold tunnel while handling genl tunnel updates l2tp: hold tunnel while handling genl TUNNEL_GET commands l2tp: hold tunnel used while creating sessions with netlink l2tp: prevent creation of sessions on terminated tunnels l2tp: pass tunnel pointer to ->session_create() l2tp: fix l2tp_eth module loading l2tp: don't register sessions in l2tp_session_create() l2tp: initialise l2tp_eth sessions before registering them l2tp: protect sock pointer of struct pppol2tp_session with RCU l2tp: initialise PPP sessions before registering them R. Parameswaran (2): New kernel function to get IP overhead on a socket. L2TP:Adjust intf MTU, add underlay L3, L2 hdrs. Documentation/networking/l2tp.txt | 8 +- include/linux/net.h | 3 + include/uapi/linux/if_pppol2tp.h | 13 +- include/uapi/linux/l2tp.h | 17 +- net/l2tp/l2tp_core.c | 174 ++++++----------- net/l2tp/l2tp_core.h | 46 +++-- net/l2tp/l2tp_eth.c | 214 +++++++++++++-------- net/l2tp/l2tp_netlink.c | 79 ++++---- net/l2tp/l2tp_ppp.c | 309 ++++++++++++++++++------------ net/socket.c | 46 +++++ 10 files changed, 516 insertions(+), 393 deletions(-) -- 2.26.2.761.g0e0b3e54be-goog