12 Feb, 2013

18 commits

  • There are only a few drivers that use HW scan, and
    all of those don't need a non-idle transition before
    starting the scan -- some don't even care about idle
    at all. Remove the flag and code associated with it.

    The only driver that really actually needed this is
    wl1251 and it can just do it itself in the hw_scan
    callback -- implement that.

    Acked-by: Luciano Coelho
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The functions were added for some sort of Bluetooth
    coexistence, but aren't used, so remove them again.

    Reviewed-by: Luciano Coelho
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • In order to be able to predict the next DTIM TBTT
    in the driver, add the ability to use timing data
    from beacons only with the new hardware flag
    IEEE80211_HW_TIMING_BEACON_ONLY and the BSS info
    value sync_dtim_count which is only valid if the
    timing data came from a beacon. The data can only
    come from a beacon, and if no beacon was received
    before association it is updated later together
    with the DTIM count notification.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • While technically the TSF isn't an IE, it can be
    necessary to distinguish between the TSF from a
    beacon and a probe response, in particular in
    order to know the next DTIM TBTT, as not all APs
    are spec compliant wrt. TSF==0 being a DTIM TBTT
    and thus the DTIM count needs to be taken into
    account as well.

    To allow this, move the TSF into the IE struct
    so it can be known whence it came.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • There's no way scan BSS IEs can be NULL as even
    if the allocation fails the frame is discarded.
    Remove some code checking for this and document
    that it is always non-NULL.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Add debugfs driver callbacks so drivers can add
    debugfs entries for interfaces. Note that they
    _must_ remove the entries again as add/remove in
    the driver doesn't correspond to add/remove in
    debugfs; the former is up/down while the latter
    is netdev create/destroy.

    Signed-off-by: Alexander Bondar
    Reviewed-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Alexander Bondar
     
  • Currently, cfg80211 will copy beacon IEs from a previously
    received hidden SSID beacon to a probe response entry, if
    that entry is created after the beacon entry. However, if
    it is the other way around, or if the beacon is updated,
    such changes aren't propagated.

    Fix this by tracking the relation between the probe
    response and beacon BSS structs in this case.

    In case drivers have private data stored in a BSS struct
    and need access to such data from a beacon entry, cfg80211
    now provides the hidden_beacon_bss pointer from the probe
    response entry to the beacon entry.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Currently the code assigns channel contexts to VLANs
    (for use by the TX/RX code) when the AP master gets
    its channel context assigned. This works fine, but
    in the upcoming radar detection work the VLANs don't
    require a channel context (during radar detection)
    and assigning one to them anyway causes issues with
    locking and also inconsistencies -- a VLAN interface
    that is added before radar detection would get the
    channel context, while one added during it wouldn't.

    Fix these issues moving the channel context copying
    to a new explicit operation that will not be used
    in the radar detection code.

    Acked-by: Simon Wunderlich
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The chandef tracing writes center_freq1 twice, so
    that it is always 0 (no driver supports 80+80 yet)
    and leaves center_freq2 unset. Fix this mistake.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The messages currently refer to probe request probes,
    but on some devices null data packets will be used
    instead. Make the messages more generic.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This patch fixes the problem which was discussed in
    "mac80211: Fix PN corruption in case of multiple
    virtual interface" [1].

    Amit Shakya reported a serious issue with my patch:
    mac80211: serialize rx path workers" [2]:

    In case, ieee80211_rx_handlers processing is going on
    for skbs received on one vif and at the same time, rx
    aggregation reorder timer expires on another vif then
    sta_rx_agg_reorder_timer_expired is invoked and it will
    push skbs into the single queue (local->rx_skb_queue).

    ieee80211_rx_handlers in the while loop assumes that
    the skbs are for the same sdata and sta. This assumption
    doesn't hold good in this scenario and the PN gets
    corrupted by PN received in other vif's skb, causing
    traffic to stop due to PN mismatch."

    [1] Message-Id: http://mid.gmane.org/201302041844.44436.chunkeey@googlemail.com
    [2] Commit-Id: 24a8fdad35835e8d71f7

    Reported-by: Amit Shakya
    Signed-off-by: Christian Lamparter
    Signed-off-by: Johannes Berg

    Christian Lamparter
     
  • There seems to be no reason, why it has to be limited to 2.4 GHz.

    Signed-off-by: Emanuel Taube
    [remove 'local' variable]
    Signed-off-by: Johannes Berg

    Emanuel Taube
     
  • The patch "mac80211: clean up mesh sta allocation warning"
    moved some mesh initialization into a path which is only
    called when the kernel handles peering. This causes a hang
    when mac80211 tries to clean up a userspace-allocated
    station entry and delete a timer which has never been
    initialized.

    To avoid this, only do any mesh sta peering teardown if
    the kernel is actually handling it.

    The same is true when quiescing before suspend.

    Signed-off-by: Thomas Pedersen
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Fix most kernel-doc warnings, for some reason it
    seems to have issues with __aligned, don't remove
    the documentation entries it considers to be in
    excess due to that.

    Reported-by: Fengguang Wu
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This prepares for using the spinlock instead of krefs
    which is needed in the next patch to track the refs
    of combined BSSes correctly.

    Acked-by: Bing Zhao [mwifiex]
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Radar is not required for P2P_DEVICE interfaces.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • When a driver requests a specific regulatory domain after cfg80211 already
    has one, a struct ieee80211_regdomain is leaked.

    Reported-by: Larry Finger
    Tested-by: Larry Finger
    Signed-off-by: Larry Finger
    Signed-off-by: Johannes Berg

    Larry Finger
     
  • Johannes Berg
     

09 Feb, 2013

22 commits

  • A new model of the RTL8188CUS has appeared.

    Reported-and-tested-by: Thomas Rosenkrantz
    Signed-off-by: Larry Finger
    Cc: Stable
    Signed-off-by: John W. Linville

    Larry Finger
     
  • With this patch off-channel action frames can be transmitted. This
    is needed for p2p when two devices need to find each other while
    using different social channels.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Piotr Haber
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Currently netdev gets created possibly after returning from
    add_virtual_intf. This is because add_if is handled asynch. This
    is wrong and netdev should be up before returning.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Piotr Haber
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Remove some unused defines and comments. Also use same define
    for IE length.

    Reviewed-by: Arend Van Spriel
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • When adding a virtual interface cfg80211 already has taken the
    rtnl_lock. So when the netdevice is being registered the
    register_netdevice should be used instead of register_netdev.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Piotr Haber
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Currently there is a sleep after disconnect on del_station. This
    timeout is not needed (anymore) and is causing problems with p2p
    setup, because remote side disconnects then supplicant will do
    del_station and while it waits the 400ms remote side will already
    reconnect and that is something supplicant cant handle.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Piotr Haber
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Wiphy object holds information about possible netdev
    combinations which can be supported. This needs updating for
    p2p device. Also p2p device netdev has wrong 80211 iftype.
    Limit the change interface support to match the netdev
    configuration/combination possibilities.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Piotr Haber
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • All interfaces for ifidx is 0 are created ahead and therefor
    double registrations for not only bssidx 0, but ifidx 0 should
    be ignored in brcfm_add_if.

    Reviewed-by: Arend Van Spriel
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Reviewed-by: Arend Van Spriel
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Use the stored role in wdev struct to determine AP/GO role. This
    simplifies code. Fix stop_ap for GO role.

    Reviewed-by: Arend Van Spriel
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Add module variable with which a p2p0 netdev can be created. This
    netdev can be used by wpa-supplicant to configure and set up the
    p2p client/GO.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • cfg80211 api change needs to be applied. this change will be squashed
    with introducing commit:

    commit 68751daec95b07a74b18aa22b2f9c196991dbe81
    Author: Hante Meuleman
    Date: Mon Nov 26 12:21:27 2012 +0100

    brcmfmac: add support for P2P listen mode.

    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Arend van Spriel
     
  • In some rare situations the wpa_supplicant can lock up on a remain
    on channel command. Use actual cookies for the remain on channel
    related commands and allow for additional remain on channel while
    still having one set.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • With this patch it is possible to send action frames.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Once wpa_supplicant has registered for P2P action frames all received
    action frames for the device are passed up to cfg80211.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • With this update it is possible to create an P2P go. Handle the
    p2p go role in creation and the update beacon from cfg80211. Also
    store primary bss in global struct. Needed to map cfg device
    back to primary device.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • In preparation of p2p connections update the sta connect setup and
    handling routines. Use join iovar and bsscfg commands where
    applicable. Handle assoc ind per bsscfg (vif) and generalize
    vndr ie setup to support assoc IEs and support all setup types,
    e.g. sta, ap and p2p.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Mask is OR-ed with value in case of deregister. Should
    be AND-ed.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Add support for changing existing interface into p2p go
    interface.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Improve exception handling. Store and removed created vif
    in cfg.p2p.bss array. Fix big endian bug. Fix msec jiffies bug.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman
     
  • Add support for scanning on non primary netdev (p2p) and
    simplify the p2p scanning preparation.

    Reviewed-by: Arend Van Spriel
    Reviewed-by: Pieter-Paul Giesberts
    Signed-off-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Hante Meuleman