--- zzzz-none-000/linux-4.1.38/net/l2tp/l2tp_ppp.c 2017-01-18 18:48:06.000000000 +0000 +++ bcm63-7582-715/linux-4.1.38/net/l2tp/l2tp_ppp.c 2020-11-25 10:06:48.000000000 +0000 @@ -1157,9 +1157,26 @@ err = -EFAULT; break; } +#if defined(CONFIG_BCM_KF_MISC_BACKPORTS) if (stats.session_id != 0) { /* resend to session ioctl handler */ struct l2tp_session *session = + l2tp_session_get(sock_net(sk), tunnel, stats.session_id, true); + + if (session) { + err = pppol2tp_session_ioctl(session, cmd, arg); + if (session->deref) + session->deref(session); + l2tp_session_dec_refcount(session); + } else { + err = -EBADR; + } + break; + } +#else + if (stats.session_id != 0) { + /* resend to session ioctl handler */ + struct l2tp_session *session = l2tp_session_find(sock_net(sk), tunnel, stats.session_id); if (session != NULL) err = pppol2tp_session_ioctl(session, cmd, arg); @@ -1167,6 +1184,7 @@ err = -EBADR; break; } +#endif #ifdef CONFIG_XFRM stats.using_ipsec = (sk->sk_policy[0] || sk->sk_policy[1]) ? 1 : 0; #endif