16 Dec, 2011

1 commit

  • Station entries can have various states, the most
    important ones being auth, assoc and authorized.
    This patch prepares us for telling the driver about
    these states, we don't want to confuse drivers with
    strange transitions, so with this we enforce that
    they move in the right order between them (back and
    forth); some transitions might happen before the
    driver even knows about the station, but at least
    runtime transitions will be ordered correctly.

    As a consequence, IBSS and MESH stations will now
    have the ASSOC flag set (so they can transition to
    AUTHORIZED), and we can get rid of a special case
    in TX processing.

    When freeing a station, unwind the state so that
    other parts of the code (or drivers later) can rely
    on the transitions.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

29 Nov, 2011

2 commits

  • We can't rely on ieee80211_select_queue() to do its job at this point
    since the skb->protocol is not yet known. Instead, factor out and reuse
    the queue mapping logic for injected frames.

    Also, to mitigate congestion, forwarded frames should be dropped if the
    outgoing queue was stopped. This was not correctly implemented as we
    were not checking the right queue. Furthermore, we were dropping frames
    that had arrived to their destination if that queue was stopped.

    Signed-off-by: Thomas Pedersen
    Signed-off-by: Javier Cardona
    Signed-off-by: John W. Linville

    Thomas Pedersen
     
  • This patch contains the processing changes in mac80211.

    Signed-off-by: Simon Wunderlich
    Signed-off-by: Mathias Kretschmer
    Signed-off-by: John W. Linville

    Simon Wunderlich
     

18 Nov, 2011

1 commit


12 Nov, 2011

2 commits


10 Nov, 2011

2 commits


09 Nov, 2011

1 commit

  • mac80211 calls ieee80211_set_wmm_default (which in turn
    calls drv_conf_tx()) for every new interface, including
    "internal" ones (e.g. monitor interface, which the low-level
    driver doesn't know about).

    Limit this call only to valid interfaces.

    Reported-by: Johannes Berg
    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     

12 Oct, 2011

1 commit


01 Oct, 2011

2 commits


22 Sep, 2011

1 commit

  • When an AP interface is removed without the
    AP/VLAN interfaces having been removed before
    already, the AP-VLAN interface might still
    have sleeping stations and buffer multicast
    frames which will happen on the AP interface.
    Thus, we need to remove AP/VLAN interfaces
    before purging buffered broadcast frames.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

20 Sep, 2011

1 commit


14 Sep, 2011

1 commit


18 Aug, 2011

1 commit


02 Aug, 2011

1 commit

  • When assigning a NULL value to an RCU protected pointer, no barrier
    is needed. The rcu_assign_pointer, used to handle that but will soon
    change to not handle the special case.

    Convert all rcu_assign_pointer of NULL value.

    //smpl
    @@ expression P; @@

    - rcu_assign_pointer(P, NULL)
    + RCU_INIT_POINTER(P, NULL)

    //

    Signed-off-by: Stephen Hemminger
    Acked-by: Paul E. McKenney
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

28 Jul, 2011

1 commit

  • After the last patch, We are left in a state in which only drivers calling
    ether_setup have IFF_TX_SKB_SHARING set (we assume that drivers touching real
    hardware call ether_setup for their net_devices and don't hold any state in
    their skbs. There are a handful of drivers that violate this assumption of
    course, and need to be fixed up. This patch identifies those drivers, and marks
    them as not being able to support the safe transmission of skbs by clearning the
    IFF_TX_SKB_SHARING flag in priv_flags

    Signed-off-by: Neil Horman
    CC: Karsten Keil
    CC: "David S. Miller"
    CC: Jay Vosburgh
    CC: Andy Gospodarek
    CC: Patrick McHardy
    CC: Krzysztof Halasa
    CC: "John W. Linville"
    CC: Greg Kroah-Hartman
    CC: Marcel Holtmann
    CC: Johannes Berg
    Signed-off-by: David S. Miller

    Neil Horman
     

14 Jul, 2011

1 commit


12 Jul, 2011

1 commit


04 Jun, 2011

1 commit


25 May, 2011

1 commit


17 May, 2011

3 commits


06 May, 2011

1 commit

  • Force dev_alloc_name() to be called from register_netdevice() by
    dev_get_valid_name(). That allows to remove multiple explicit
    dev_alloc_name() calls.

    The possibility to call dev_alloc_name in advance remains.

    This also fixes veth creation regresion caused by
    84c49d8c3e4abefb0a41a77b25aa37ebe8d6b743

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     

04 Mar, 2011

1 commit


21 Feb, 2011

1 commit

  • From: Eric W. Biederman

    In the beginning with batching unreg_list was a list that was used only
    once in the lifetime of a network device (I think). Now we have calls
    using the unreg_list that can happen multiple times in the life of a
    network device like dev_deactivate and dev_close that are also using the
    unreg_list. In addition in unregister_netdevice_queue we also do a
    list_move because for devices like veth pairs it is possible that
    unregister_netdevice_queue will be called multiple times.

    So I think the change below to fix dev_deactivate which Eric D. missed
    will fix this problem. Now to go test that.

    Signed-off-by: David S. Miller

    Eric W. Biederman
     

04 Feb, 2011

1 commit


06 Jan, 2011

1 commit


23 Dec, 2010

2 commits

  • The throughput LED trigger was always active when
    the radio was enabled. In most cases that's likely
    the desired behaviour, but iwlwifi requires it to
    be only active when one of the virtual interfaces
    is actually "connected" in some way.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • iwlwifi and other drivers like to blink their LED
    based on throughput. Implement this generically in
    mac80211, based on a throughput table the driver
    specifies. That way, drivers can set the blink
    frequencies depending on their desired behaviour
    and max throughput.

    All the drivers need to do is provide an LED class
    device, best with blink hardware offload.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

07 Dec, 2010

2 commits

  • Instead of tying mesh activity to interface up,
    add join and leave commands for mesh. Since we
    must be backward compatible, let cfg80211 handle
    joining a mesh if a mesh ID was pre-configured
    when the device goes up.

    Note that this therefore must modify mac80211 as
    well since mac80211 needs to lose the logic to
    start the mesh on interface up.

    We now allow querying mesh parameters before the
    mesh is connected, which simply returns defaults.
    Setting them (internally renamed to "update") is
    only allowed while connected. Specify them with
    the new mesh join command instead where needed.

    In mac80211, beaconing must now also follow the
    mesh enabled/not enabled state, which is done
    by testing the mesh ID.

    Signed-off-by: Javier Cardona
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Logically, the filter adjusting belongs with
    starting/stopping mesh, not interface up/down,
    so move it there.

    Tested-by: Javier Cardona
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

09 Nov, 2010

1 commit

  • For client STA interfaces, ieee80211_do_stop unsets the relevant
    interface's SDATA_STATE_RUNNING state bit prior to cancelling an
    interrupted scan. When ieee80211_offchannel_return is invoked as
    part of cancelling the scan, it doesn't bother unsetting the
    SDATA_STATE_OFFCHANNEL bit because it sees that the interface is
    down. Normally this doesn't matter because when the client STA
    interface is brought back up, it will probably issue a scan. But
    in some cases (e.g., the user changes the interface type while it
    is down), the SDATA_STATE_OFFCHANNEL bit will remain set. This
    prevents the interface queues from being started. So we
    cancel the scan before unsetting the SDATA_STATE_RUNNING bit.

    Signed-off-by: Brian Cavagnolo
    Signed-off-by: John W. Linville

    Brian Cavagnolo
     

14 Oct, 2010

1 commit


07 Oct, 2010

1 commit

  • When roaming while we have active BA session,
    we can end up transmitting delBA frames to
    the old AP while we're already on the new AP's
    channel, which can cause warnings.

    Simply avoid sending those frames, but still
    tear down the internal session state, since
    they are not really necessary anyway as we
    will implicitly disassociate when sending the
    association to the new AP.

    Signed-off-by: Johannes Berg
    Acked-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Johannes Berg
     

06 Oct, 2010

2 commits


17 Sep, 2010

1 commit

  • When a driver advertises p2p device support,
    mac80211 will handle it, but internally it will
    rewrite the interface type to STA/AP rather than
    P2P-STA/GO since otherwise a lot of paths need
    to be touched that are otherwise identical. A
    p2p boolean tells drivers whether or not a given
    interface will be used for p2p or not.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg