24 Sep, 2010

4 commits

  • Change "return (EXPR);" to "return EXPR;"

    return is not a function, parentheses are not required.

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

    Eric Dumazet
     
  • E1000 can benefit from calling the GRO receive functions.

    Signed-off-by: Jesse Brandeburg
    Tested-by: Jeff Pieper
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jesse Brandeburg
     
  • Net drivers in general have an issue where timers fired
    by mod_timer or work threads with schedule_work are running
    outside of the rtnl_lock.

    With no other lock protection these routines are vulnerable
    to races with driver unload or reset paths.

    The longer term solution to this might be a redesign with
    safer locks being taken in the driver to guarantee no
    reentrance, but for now a safe and effective fix is
    to take the rtnl_lock in these routines.

    Signed-off-by: Jesse Brandeburg
    Tested-by: Jeff Pieper
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jesse Brandeburg
     
  • E1000 is using several timers that in a follow on patch
    will need to acquire the rtnl_lock in order to be safe.

    This patch moves the timer bodies into work queues which
    will allow the next patch to add rtnl_lock.

    Signed-off-by: Jesse Brandeburg
    Tested-by: Jeff Pieper
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jesse Brandeburg
     

23 Sep, 2010

7 commits


22 Sep, 2010

24 commits


21 Sep, 2010

5 commits

  • ath9k can use minstrel_ht instead, so it makes sense to save some space here.

    Signed-off-by: Felix Fietkau
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • It is not used anywhere else and can be made static

    Signed-off-by: Felix Fietkau
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • The tid aggregation cleanup is a bit fragile, as it discards failed
    subframes in some places, and retransmits them in others. This could
    block the cleanup of an existing aggregation session, if a retransmission
    for a tid is issued, yet the tid is never scheduled again because of
    the cleanup state.

    Fix this by getting rid of as many subframes as possible, as early
    as possible, and immediately transmitting pending subframes as regular
    HT frames instead of waiting for the cleanup to complete.

    Drop all pending subframes while keeping track of the Block ACK window
    during aggregate tx completion to prevent sending out stale subframes,
    which could confuse the receiver side.

    Signed-off-by: Felix Fietkau
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • A new aggregation session start can be issued by mac80211, even when the
    cleanup of the previous session has not completed yet. Since the data structure
    for the session is not recreated, this could corrupt the block ack window
    and lock up the aggregation session. Fix this by delaying the new session
    until the old one has been cleaned up.

    Signed-off-by: Felix Fietkau
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • There's no reason to keep pointers to pending tx buffers around, if they're
    only used to keep track of which frames are still pending. Use a bitfield
    instead.

    Signed-off-by: Felix Fietkau
    Signed-off-by: John W. Linville

    Felix Fietkau