31 Jul, 2019

1 commit

  • Support for handling the PPPOEIOCSFWD ioctl in compat mode was added in
    linux-2.5.69 along with hundreds of other commands, but was always broken
    sincen only the structure is compatible, but the command number is not,
    due to the size being sizeof(size_t), or at first sizeof(sizeof((struct
    sockaddr_pppox)), which is different on 64-bit architectures.

    Guillaume Nault adds:

    And the implementation was broken until 2016 (see 29e73269aa4d ("pppoe:
    fix reference counting in PPPoE proxy")), and nobody ever noticed. I
    should probably have removed this ioctl entirely instead of fixing it.
    Clearly, it has never been used.

    Fix it by adding a compat_ioctl handler for all pppoe variants that
    translates the command number and then calls the regular ioctl function.

    All other ioctl commands handled by pppoe are compatible between 32-bit
    and 64-bit, and require compat_ptr() conversion.

    This should apply to all stable kernels.

    Acked-by: Guillaume Nault
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 Nov, 2015

1 commit


11 May, 2015

1 commit


02 Mar, 2015

1 commit

  • When a PADT frame is received, the socket may not be in a good state to
    close down the PPP interface. The current implementation handles this by
    simply blocking all further PPP traffic, and hoping that the lack of traffic
    will trigger the user to investigate.

    Use schedule_work to get to a process context from which we clear down the
    PPP interface, in a fashion analogous to hangup on a TTY-based PPP
    interface. This causes pppd to disconnect immediately, and allows tools to
    take immediate corrective action.

    Note that pppd's rp_pppoe.so plugin has code in it to disable the session
    when it disconnects; however, as a consequence of this patch, the session is
    already disabled before rp_pppoe.so is asked to disable the session. The
    result is a harmless error message:

    Failed to disconnect PPPoE socket: 114 Operation already in progress

    This message is safe to ignore, as long as the error is 114 Operation
    already in progress; in that specific case, it means that the PPPoE session
    has already been disabled before pppd tried to disable it.

    Signed-off-by: Simon Farnsworth
    Tested-by: Dan Williams
    Tested-by: Christoph Schulz
    Signed-off-by: David S. Miller

    Simon Farnsworth
     

13 Oct, 2012

1 commit


01 May, 2012

1 commit


29 Apr, 2012

1 commit

  • Now that encap_rcv() works on IPv6 UDP sockets, wire L2TP up to IPv6.
    Support has been tested with and without hardware offloading. This
    version fixes the L2TP over localhost issue with incorrect checksums
    being reported.

    Signed-off-by: Benjamin LaHaise
    Signed-off-by: David S. Miller

    Benjamin LaHaise
     

27 Aug, 2011

2 commits


22 Sep, 2010

1 commit


23 Aug, 2010

3 commits


22 Aug, 2010

1 commit

  • PPP: introduce "pptp" module which implements point-to-point tunneling protocol using pppox framework
    NET: introduce the "gre" module for demultiplexing GRE packets on version criteria
    (required to pptp and ip_gre may coexists)
    NET: ip_gre: update to use the "gre" module

    This patch introduces then pptp support to the linux kernel which
    dramatically speeds up pptp vpn connections and decreases cpu usage in
    comparison of existing user-space implementation
    (poptop/pptpclient). There is accel-pptp project
    (https://sourceforge.net/projects/accel-pptp/) to utilize this module,
    it contains plugin for pppd to use pptp in client-mode and modified
    pptpd (poptop) to build high-performance pptp NAS.

    There was many changes from initial submitted patch, most important are:
    1. using rcu instead of read-write locks
    2. using static bitmap instead of dynamically allocated
    3. using vmalloc for memory allocation instead of BITS_PER_LONG + __get_free_pages
    4. fixed many coding style issues
    Thanks to Eric Dumazet.

    Signed-off-by: Dmitry Kozlov
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Dmitry Kozlov
     

03 Jun, 2010

1 commit


04 Apr, 2010

1 commit

  • This patch makes changes to the L2TP PPP code for L2TPv3.

    The existing code has some assumptions about the L2TP header which are
    broken by L2TPv3. Also the sockaddr_pppol2tp structure of the original
    code is too small to support the increased size of the L2TPv3 tunnel
    and session id, so a new sockaddr_pppol2tpv3 structure is needed. In
    the socket calls, the size of this structure is used to tell if the
    operation is for L2TPv2 or L2TPv3.

    Signed-off-by: James Chapman
    Reviewed-by: Randy Dunlap
    Signed-off-by: David S. Miller

    James Chapman
     

15 Feb, 2009

1 commit


16 Jan, 2009

1 commit


19 Apr, 2008

1 commit


11 Oct, 2007

2 commits

  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • This patch passes in the namespace a new socket should be created in
    and has the socket code do the appropriate reference counting. By
    virtue of this all socket create methods are touched. In addition
    the socket create methods are modified so that they will fail if
    you attempt to create a socket in a non-default network namespace.

    Failing if we attempt to create a socket outside of the default
    network namespace ensures that as we incrementally make the network stack
    network namespace aware we will not export functionality that someone
    has not audited and made certain is network namespace safe.
    Allowing us to partially enable network namespaces before all of the
    exotic protocols are supported.

    Any protocol layers I have missed will fail to compile because I now
    pass an extra parameter into the socket creation code.

    [ Integrated AF_IUCV build fixes from Andrew Morton... -DaveM ]

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

11 Jul, 2007

1 commit

  • Add struct sockaddr_pppol2tp to carry L2TP-specific address
    information for the PPPoX (PPPoL2TP) socket. Unfortunately we can't
    use the union inside struct sockaddr_pppox because the L2TP-specific
    data is larger than the current size of the union and we must preserve
    the size of struct sockaddr_pppox for binary compatibility.

    Also add a PPPIOCGL2TPSTATS ioctl to allow userspace to obtain
    L2TP counters and state from the kernel.

    Add new if_pppol2tp.h header.

    [ Modified to use aligned_u64 in statistics structure -DaveM ]

    Signed-off-by: James Chapman
    Signed-off-by: David S. Miller

    James Chapman
     

26 Apr, 2007

3 commits


06 Mar, 2007

1 commit


04 Jan, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds