19 Mar, 2013

3 commits

  • There are a number of situations in which mac80211 only
    really needs to flush queues for one virtual interface,
    and in fact during this frames might be transmitted on
    other virtual interfaces. Calculate and pass a queue
    bitmap to the driver so it knows which queues to flush.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This basically reverts commit b207cdb07f3f01ec1adaac62e9d0cc918c60a81a.

    Now is possible to use drv_{add,remove}_interface() and vif->debugfs_dir
    to create/remove per interface debugfs files. Remove redundant
    callbacks.

    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: Johannes Berg

    Stanislaw Gruszka
     
  • There is need create driver own per interface debugfs files. This is
    currently done by drv_{add,remove}_interface_debugfs() callbacks. But it
    is possible that after we remove interface from the driver (i.e.
    on suspend) we call drv_remove_interface_debugfs() function. Fixing this
    problem will require to add call drv_{add,remove}_interface_debugfs()
    anytime we create and remove interface in mac80211. So it's better to
    add debugfs dir dentry to vif structure to allow to create/remove
    custom debugfs driver files on drv_{add,remove}_interface().

    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: Johannes Berg

    Stanislaw Gruszka
     

11 Mar, 2013

1 commit


06 Mar, 2013

1 commit

  • Some devices can handle remain on channel requests differently
    based on the request type/priority. Add support to
    differentiate between different ROC types, i.e., indicate that
    the ROC is required for sending managment frames.

    Signed-off-by: Ilan Peer
    Reviewed-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Ilan Peer
     

15 Feb, 2013

1 commit

  • Since the idle decision rework, mac80211 started calling
    bss_info_changed() for the driver's monitor interface,
    which causes a crash for iwlwifi, but drivers generally
    don't expect this to happen. Therefore, avoid it.

    While at it, also prevent calling it in such cases and
    only print a warning. For the P2P Device interface the
    idle will no longer be called (no channel context), so
    also prevent that and warn on it.

    Reported-by: Chaitanya
    Signed-off-by: Johannes Berg

    Johannes Berg
     

12 Feb, 2013

1 commit

  • 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
     

24 Jan, 2013

2 commits


19 Jan, 2013

1 commit

  • To be able to implement NS response offloading (in
    regular operation or while in WoWLAN) drivers need
    to know the IPv6 addresses assigned to interfaces.
    Implement an IPv6 notifier in mac80211 to call the
    driver when addresses change.

    Unlike for IPv4, implement it as a callback rather
    than as a list in the BSS configuration, that is
    more flexible.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

18 Jan, 2013

1 commit

  • There are hardwares which support offload of data packets
    for example when auto ARP is enabled the hw will send
    the ARP response. In such cases if WEP encryption is
    configured the hw must know the default WEP key in order
    to encrypt the packets correctly.

    When hw_accel is enabled and encryption type is set to WEP,
    the driver should get the default key index from mac80211.

    Signed-off-by: Yoni Divinsky
    [cleanups, fixes, documentation]
    Signed-off-by: Johannes Berg

    Yoni Divinsky
     

03 Jan, 2013

3 commits

  • Instead of checking every time bss_info_changed is called,
    assign the pointer once depending on the interface type
    and then leave it untouched until the interface type is
    changed. This makes the ieee80211_bss_info_change_notify()
    now a simple wrapper to call the driver only.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The special case in the function isn't really needed,
    instead make the suspend code a bit better and also
    easier to understand and move the warning into the
    driver op wrapper inline.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • During suspend/resume channel contexts might be
    iterated even if they haven't been re-added to
    the driver, keep track of this and skip them in
    iteration. Also use the new status for sanity
    checks.

    Also clarify the fact that during HW restart all
    contexts are iterated over (thanks Eliad.)

    Signed-off-by: Johannes Berg

    Johannes Berg
     

14 Dec, 2012

1 commit

  • Pull trivial branch from Jiri Kosina:
    "Usual stuff -- comment/printk typo fixes, documentation updates, dead
    code elimination."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    HOWTO: fix double words typo
    x86 mtrr: fix comment typo in mtrr_bp_init
    propagate name change to comments in kernel source
    doc: Update the name of profiling based on sysfs
    treewide: Fix typos in various drivers
    treewide: Fix typos in various Kconfig
    wireless: mwifiex: Fix typo in wireless/mwifiex driver
    messages: i2o: Fix typo in messages/i2o
    scripts/kernel-doc: check that non-void fcts describe their return value
    Kernel-doc: Convention: Use a "Return" section to describe return values
    radeon: Fix typo and copy/paste error in comments
    doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
    various: Fix spelling of "asynchronous" in comments.
    Fix misspellings of "whether" in comments.
    eisa: Fix spelling of "asynchronous".
    various: Fix spelling of "registered" in comments.
    doc: fix quite a few typos within Documentation
    target: iscsi: fix comment typos in target/iscsi drivers
    treewide: fix typo of "suport" in various comments and Kconfig
    treewide: fix typo of "suppport" in various comments
    ...

    Linus Torvalds
     

26 Nov, 2012

1 commit

  • As mwifiex (and mac80211 in the software case) are the
    only drivers actually implementing remain-on-channel
    with channel type, userspace can't be relying on it.
    This is the case, as it's used only for P2P operations
    right now.

    Rather than adding a flag to tell userspace whether or
    not it can actually rely on it, simplify all the code
    by removing the ability to use different channel types.
    Leave only the validation of the attribute, so that if
    we extend it again later (with the needed capability
    flag), it can't break userspace sending invalid data.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

21 Nov, 2012

1 commit


19 Nov, 2012

2 commits


10 Nov, 2012

1 commit

  • When the driver requests a restart (reconfiguration) it
    gets all the normal method calls, but can't really tell
    why they're happening. Call a new restart_complete op
    in the driver when the restart completes, so it could
    keep its own state about the restart and clear it there.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

26 Oct, 2012

1 commit


17 Oct, 2012

1 commit


20 Aug, 2012

2 commits

  • After cfg80211 got a P2P Device abstraction, add
    support to mac80211. Whether it really is supported
    or not will depend on whether or not the driver has
    support for it, but mac80211 needs to change to be
    able to support drivers that need a P2P Device.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • In IBSS it is possible that the supported rates set for a station changes over
    time (e.g. it gets first initialised as an empty set because of no available
    information about rates and updated later). In this case the driver has to be
    notified about the change in order to update its internal table accordingly (if
    needed).

    This behaviour is needed by all those drivers that handle rc internally but
    leave stations management to mac80211

    Reported-by: Gui Iribarren
    Signed-off-by: Antonio Quartulli
    [Johannes - add docs, validate IBSS mode only, fix compilation]
    Signed-off-by: Johannes Berg

    Antonio Quartulli
     

31 Jul, 2012

1 commit

  • Remove the control.sta pointer from ieee80211_tx_info to free up
    sufficient space in the TX skb control buffer for the upcoming
    Transmit Power Control (TPC).
    Instead, the pointer is now on the stack in a new control struct
    that is passed as a function parameter to the drivers' tx method.

    Signed-off-by: Thomas Huehn
    Signed-off-by: Alina Friedrichsen
    Signed-off-by: Felix Fietkau
    [reworded commit message]
    Signed-off-by: Johannes Berg

    Thomas Huehn
     

03 Jul, 2012

1 commit

  • Some drivers require setup before being able to send
    management frames in managed mode, in particular in
    multi-channel cases.

    Introduce API to allow the drivers to do such setup
    while being able to sleep waiting for the setup to
    finish in the device. This isn't possible inside the
    TX call since that can't sleep.

    A future patch may also restructure the TX retry to
    wait for the driver to report the frame status, as
    suggested by Arik in
    http://mid.gmane.org/CA+XVXffKSEL6ZQPQ98x-zO-NL2=TNF1uN==mprRyUmAaRn254g@mail.gmail.com

    Signed-off-by: Johannes Berg

    Johannes Berg
     

02 Jul, 2012

1 commit


24 Jun, 2012

1 commit


21 Jun, 2012

1 commit

  • Get current rssi (in dBm) from the driver/FW.

    Instead of reporting the signal received in the last
    rx packet, which might be inaccurate if rx traffic is
    low and beacon filtering is enabled, get the signal
    from the driver/FW.

    Signed-off-by: Victor Goldenshtein
    Signed-off-by: Johannes Berg

    Victor Goldenshtein
     

09 May, 2012

1 commit


12 Apr, 2012

2 commits

  • In WoWLAN, we only get the triggers when we actually get
    to suspend. As a consequence, drivers currently don't
    know that the device should enable wakeup. However, the
    device_set_wakeup_enable() API is intended to be called
    when the wakeup is enabled, not later when needed.

    Add a new set_wakeup() call to cfg80211 and mac80211 to
    allow drivers to properly call device_set_wakeup_enable.

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

    Johannes Berg
     
  • The queue mapping redesign that I'm planning to do
    will break pure injection unless we handle monitor
    interfaces explicitly. One possible option would
    be to have the driver tell mac80211 about monitor
    mode queues etc., but that would duplicate the API
    since we already need to have queue assignments
    handled per virtual interface.

    So in order to solve this, have a virtual monitor
    interface that is added whenever all active vifs
    are monitors. We could also use the state of one
    of the monitor interfaces, but managing that would
    be complicated, so allocate separate state.

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

    Johannes Berg
     

11 Apr, 2012

2 commits

  • With the plan to change mac80211's queue API to
    not map ACs to queues 1:1, it seems necessary to
    clarify some APIs that act on ACs rather than on
    queues to spell that out explicitly. Do this.

    Also verify that the AC number given is valid.

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

    Johannes Berg
     
  • Devices that have internal rate control need to be
    notified when the bandwidth or SMPS state changes
    just like external rate control algorithms get a
    notification now.

    Add this notification and clarify the change bits
    while at it, the HT_CHANGED bit really meant only
    bandwidth changed.

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

    Johannes Berg
     

10 Apr, 2012

1 commit


13 Mar, 2012

1 commit

  • When the station state callback was added, this
    was no longer needed in theory. With the iwlwifi
    changes to remove use of it landing, we can kill
    the entire tx-sync framework again, RIP.

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

    Johannes Berg
     

07 Feb, 2012

3 commits

  • Instead of maintaining separate sta_add/sta_remove
    callsites, implement it in sta_state when the driver
    has no sta_state implementation.

    The only behavioural change this should cause is in
    secure mesh mode: with this the station entries will
    only be created after the stations are set to AUTH.
    Given which drivers support mesh, this seems to not
    be a problem.

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

    Johannes Berg
     
  • (based on Eliad's patch)

    Add a callback to notify the low-level driver whenever
    the state of a station changes. The driver is only
    notified when the station is actually in the mac80211
    hash table, not for pre-insert state transitions.

    To allow the driver to replace sta_add/remove calls
    with this, call extra transitions with the NOTEXIST
    state.

    This callback can fail, so we need to be careful in
    handling it when a station is inserted, particularly
    in the IBSS case where we still keep the station entry
    around for mac80211 purposes.

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

    Johannes Berg
     
  • Setting keys and updating TKIP keys must use the
    BSS sdata (not AP_VLAN), so we translate. Move
    the translation into driver-ops wrappers instead
    of having it inline in the code to simplify the
    normal code flow.

    The same can be done for sta_add/remove which
    already does the translation in the wrapper.

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

    Johannes Berg
     

29 Nov, 2011

1 commit

  • This fixes frequent WARN_ONs when using AP VLAN + aggregation, as these vifs
    are virtual and not registered with drivers.
    Use sta_info_get_bss instead of sta_info_get in aggregation callbacks, so
    that these callbacks can find the station entry when called with the AP vif.

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

    Felix Fietkau