19 May, 2012

1 commit


18 May, 2012

1 commit


16 Apr, 2012

1 commit


14 Apr, 2012

1 commit

  • Commit e675f0cc9a872fd152edc0c77acfed19bf28b81e ("ppp: Don't stop and
    restart queue on every TX packet") introduced a race condition which
    could leave the net queue stopped even when the channel is no longer
    busy. By calling netif_stop_queue() from ppp_start_xmit(), based on the
    return value from ppp_xmit_process() but *after* all the locks have been
    dropped, we could potentially do so *after* the channel has actually
    finished transmitting and attempted to re-wake the queue.

    Fix this by moving the netif_stop_queue() into ppp_xmit_process() under
    the xmit lock. I hadn't done this previously, because it gets called
    from other places than ppp_start_xmit(). But I now think it's the better
    option. The net queue *should* be stopped if the channel becomes
    congested due to writes from pppd, anyway.

    Signed-off-by: David Woodhouse
    Signed-off-by: David S. Miller

    David Woodhouse
     

11 Apr, 2012

1 commit


04 Apr, 2012

2 commits

  • Use for_each_set_bit_from to iterate over all the set bit in a memory
    region.

    Signed-off-by: Akinobu Mita
    Cc: Dmitry Kozlov
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Akinobu Mita
     
  • For every transmitted packet, ppp_start_xmit() will stop the netdev
    queue and then, if appropriate, restart it. This causes the TX softirq
    to run, entirely gratuitously.

    This is "only" a waste of CPU time in the normal case, but it's actively
    harmful when the PPP device is a TEQL slave — the wakeup will cause the
    offending device to receive the next TX packet from the TEQL queue, when
    it *should* have gone to the next slave in the list. We end up seeing
    large bursts of packets on just *one* slave device, rather than using
    the full available bandwidth over all slaves.

    This patch fixes the problem by *not* unconditionally stopping the queue
    in ppp_start_xmit(). It adds a return value from ppp_xmit_process()
    which indicates whether the queue should be stopped or not.

    It *doesn't* remove the call to netif_wake_queue() from
    ppp_xmit_process(), because other code paths (especially from
    ppp_output_wakeup()) need it there and it's messy to push it out to the
    other callers to do it based on the return value. So we leave it in
    place — it's a no-op in the case where the queue wasn't stopped, so it's
    harmless in the TX path.

    Signed-off-by: David Woodhouse
    Signed-off-by: David S. Miller

    David Woodhouse
     

05 Mar, 2012

3 commits

  • Since all that include/linux/if_ppp.h does is #include ,
    this replaces the occurrences of #include with
    #include .

    It also corrects an error in Documentation/networking/l2tp.txt, where
    it referenced include/linux/if_ppp.h as the source of some definitions
    that are actually now defined in include/linux/if_pppol2tp.h.

    Signed-off-by: Paul Mackerras
    Signed-off-by: David S. Miller

    Paul Mackerras
     
  • This moves the definitions of the ioctls, constants and structures
    relating to the ppp_generic interface to userspace out from if_ppp.h
    to a new file, ppp-ioctl.h. The new file has my copyright since I
    designed and implemented the ppp_generic interface in the late 1990s.
    None of the contents of this file comes from the original if_ppp.h
    published by Carnegie Mellon University.

    Of the remainder of if_ppp.h, only the PPP_MTU definition was being
    used, and this replaces the uses of it with PPP_MRU (which is identical).
    Therefore, this replaces the entire file with the single line

    #include

    which clearly doesn't contain any CMU code. Thus I have removed the
    CMU copyright notice with its problematic advertising clause, and in
    fact since it's only one trivial line I have not added any other
    copyright notice.

    Signed-off-by: Paul Mackerras
    Signed-off-by: David S. Miller

    Paul Mackerras
     
  • This changes the copyright notices on the PPP code that I developed
    in the late 1990s from being copyright The Australian National
    University to copyright Paul Mackerras. I can do this as I have an
    acknowledgement in writing from the Head of the Computer Science
    Department at ANU (where I worked then) that ANU does not claim any
    intellectual property in this code.

    While I'm at it, change the copyright notice from BSD-style to
    GNU GPL like the rest of the kernel.

    Signed-off-by: Paul Mackerras
    Signed-off-by: David S. Miller

    Paul Mackerras
     

27 Feb, 2012

1 commit


25 Feb, 2012

1 commit

  • This patch fixes a (mostly cosmetic) bug introduced by the patch
    'ppp: Use SKB queue abstraction interfaces in fragment processing'
    found here: http://www.spinics.net/lists/netdev/msg153312.html

    The above patch rewrote and moved the code responsible for cleaning
    up discarded fragments but the new code does not catch every case
    where this is necessary. This results in some discarded fragments
    remaining in the queue, and triggering a 'bad seq' error on the
    subsequent call to ppp_mp_reconstruct. Fragments are discarded
    whenever other fragments of the same frame have been lost.
    This can generate a lot of unwanted and misleading log messages.

    This patch also adds additional detail to the debug logging to
    make it clearer which fragments were lost and which other fragments
    were discarded as a result of losses. (Run pppd with 'kdebug 1'
    option to enable debug logging.)

    Signed-off-by: Ben McKeegan
    Signed-off-by: David S. Miller

    Ben McKeegan
     

14 Feb, 2012

1 commit


01 Feb, 2012

1 commit


13 Jan, 2012

1 commit


16 Dec, 2011

1 commit


08 Dec, 2011

1 commit


24 Nov, 2011

1 commit

  • rcu_assign_pointer(ptr, NULL) can be safely replaced by
    RCU_INIT_POINTER(ptr, NULL)

    (old rcu_assign_pointer() macro was testing the NULL value and could
    omit the smp_wmb(), but this had to be removed because of compiler
    warnings)

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

    Eric Dumazet
     

25 Oct, 2011

1 commit


22 Sep, 2011

1 commit

  • Conflicts:
    MAINTAINERS
    drivers/net/Kconfig
    drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
    drivers/net/ethernet/broadcom/tg3.c
    drivers/net/wireless/iwlwifi/iwl-pci.c
    drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
    drivers/net/wireless/rt2x00/rt2800usb.c
    drivers/net/wireless/wl12xx/main.c

    David S. Miller
     

27 Aug, 2011

1 commit

  • Move the PPP drivers into drivers/net/ppp/ and make the
    necessary Kconfig and Makefile changes.

    CC: Paul Mackerras
    CC: Frank Cusack
    CC: Michal Ostrowski
    CC: Michal Ostrowski
    CC: Dmitry Kozlov
    Signed-off-by: Jeff Kirsher

    Jeff Kirsher