26 Mar, 2013

1 commit


07 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: John W. Linville

    Bill Pemberton
     

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
     

17 Jul, 2012

1 commit


07 Jun, 2012

1 commit

  • Adding casts of objects to the same type is unnecessary
    and confusing for a human reader.

    For example, this cast:

    int y;
    int *p = (int *)&y;

    I used the coccinelle script below to find and remove these
    unnecessary casts. I manually removed the conversions this
    script produces of casts with __force, __iomem and __user.

    @@
    type T;
    T *p;
    @@

    - (T *)p
    + p

    Neatened the mwifiex_deauthenticate_infra function which
    was doing odd things with array pointers and not using
    is_zero_ether_addr.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     

17 Apr, 2012

1 commit

  • This patch converts the drivers in drivers/net/wireless/* to use
    module_pci_driver() macro which makes the code smaller and a bit simpler.

    Signed-off-by: Axel Lin
    Cc: "John W. Linville"
    Cc: Jiri Slaby
    Cc: Nick Kossifidis
    Cc: "Luis R. Rodriguez"
    Cc: Simon Kelley
    Cc: Jouni Malinen
    Cc: Lennert Buytenhek
    Cc: Christian Lamparter
    Cc: Ivo van Doorn
    Cc: Larry Finger
    Cc: linux-wireless@vger.kernel.org
    Acked-by: Lennert Buytenhek
    Signed-off-by: John W. Linville

    Axel Lin
     

01 Nov, 2011

1 commit


28 Sep, 2011

1 commit


07 Jun, 2011

1 commit


26 Feb, 2011

1 commit

  • The return value of the tx operation is commonly
    misused by drivers, leading to errors. All drivers
    will drop frames if they fail to TX the frame, and
    they must also properly manage the queues (if they
    didn't, mac80211 would already warn).

    Removing the ability for drivers to return a BUSY
    value also allows significant cleanups of the TX
    TX handling code in mac80211.

    Note that this also fixes a bug in ath9k_htc, the
    old "return -1" there was wrong.

    Signed-off-by: Johannes Berg
    Tested-by: Sedat Dilek [ath5k]
    Acked-by: Gertjan van Wingerde [rt2x00]
    Acked-by: Larry Finger [b43, rtl8187, rtlwifi]
    Acked-by: Luciano Coelho [wl12xx]
    Signed-off-by: John W. Linville

    Johannes Berg
     

19 Aug, 2010

1 commit


28 Jul, 2010

1 commit


13 Jul, 2010

1 commit


12 Apr, 2010

1 commit


04 Apr, 2010

1 commit

  • Converts the list and the core manipulating with it to be the same as uc_list.

    +uses two functions for adding/removing mc address (normal and "global"
    variant) instead of a function parameter.
    +removes dev_mcast.c completely.
    +exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for
    manipulation with lists on a sandbox (used in bonding and 80211 drivers)

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

    Jiri Pirko
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

15 Feb, 2010

1 commit


09 Feb, 2010

1 commit


08 Jan, 2010

1 commit


29 Dec, 2009

1 commit

  • All its members (vif, mac_addr, type) are now available
    in the vif struct directly, so we can pass that instead
    of the conf struct. I generated this patch (except the
    mac80211 and header file changes) with this semantic
    patch:

    @@
    identifier conf, fn, hw;
    type tp;
    @@
    tp fn(struct ieee80211_hw *hw,
    -struct ieee80211_if_init_conf *conf)
    +struct ieee80211_vif *vif)
    {
    type
    +vif->type
    |
    -conf->mac_addr
    +vif->addr
    |
    -conf->vif
    +vif
    )
    ...>
    }

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

    Johannes Berg
     

19 Nov, 2009

1 commit


20 Aug, 2009

1 commit

  • Over time, a whole bunch of drivers have come up
    with their own scheme to delay the configure_filter
    operation to a workqueue. To be able to simplify
    things, allow configure_filter to sleep, and add
    a new prepare_multicast callback that drivers that
    need the multicast address list implement. This new
    callback must be atomic, but most drivers either
    don't care or just calculate a hash which can be
    done atomically and then uploaded to the hardware
    non-atomically.

    A cursory look suggests that at76c50x-usb, ar9170,
    mwl8k (which is actually very broken now), rt2x00,
    wl1251, wl1271 and zd1211 should make use of this
    new capability.

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

    Johannes Berg
     

25 Jul, 2009

1 commit


11 Jul, 2009

1 commit

  • Within mac80211, we often need to copy the rx status into
    skb->cb. This is wasteful, as drivers could be building it
    in there to start with. This patch changes the API so that
    drivers are expected to pass the RX status in skb->cb, now
    accessible as IEEE80211_SKB_RXCB(skb). It also updates all
    drivers to pass the rx status in there, but only by making
    them memcpy() it into place before the call to the receive
    function (ieee80211_rx(_irqsafe)). Each driver can now be
    optimised on its own schedule.

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

    Johannes Berg
     

07 May, 2009

1 commit

  • The config_interface method is a little strange, it contains the
    BSSID and beacon updates, while bss_info_changed contains most
    other BSS information for each interface. This patch removes
    config_interface and rolls all the information it previously
    passed to drivers into bss_info_changed.

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

    Johannes Berg
     

07 Apr, 2009

1 commit


11 Nov, 2008

1 commit

  • Since adm8211 currently doesn't implement IBSS mode anyway,
    it can't be using the SSID. And if/when it does implement
    IBSS mode, we'll have to see how to make it beacon anyway.

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

    Johannes Berg
     

01 Nov, 2008

2 commits

  • So after the previous changes we were still unhappy with how
    convoluted the API is and decided to make things simpler for
    everybody. This completely changes the rate control API, now
    taking into account 802.11n with MCS rates and more control,
    most drivers don't support that though.

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

    Johannes Berg
     
  • This makes mac80211 notify the driver which configuration
    actually changed, e.g. channel etc.

    No driver changes, this is just plumbing, driver authors are
    expected to act on this if they want to.

    Also remove the HW CONFIG debug printk, it's incorrect, often
    we configure something else.

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

    Johannes Berg
     

28 Oct, 2008

1 commit

  • This converts pretty much everything to print_mac. There were
    a few things that had conflicts which I have just dropped for
    now, no harm done.

    I've built an allyesconfig with this and looked at the files
    that weren't built very carefully, but it's a huge patch.

    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     

16 Sep, 2008

1 commit

  • There's really no reason for mac80211 to be using its
    own interface type defines. Use the nl80211 types and
    simplify the configuration code a bit: there's no need
    to translate them any more now.

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

    Johannes Berg
     

06 Sep, 2008

1 commit

  • It is obviously good for userspace to know up front which
    interface modes a given piece of hardware might support (even
    if adding such an interface might fail later because of
    concurrency issues), so let's make cfg80211 aware of that.
    For good measure, disallow adding interfaces in all other
    modes so drivers don't forget to announce support for one mode
    when they add it.

    Signed-off-by: Johannes Berg
    Signed-off-by: Stephen Blackheath
    Signed-off-by: Ivo van Doorn
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

27 Jun, 2008

1 commit


22 May, 2008

3 commits

  • This patch converts mac80211 and all drivers to have transmit
    information and status in skb->cb rather than allocating extra
    memory for it and copying all the data around. To make it fit,
    a union is used where only data that is necessary for all steps
    is kept outside of the union.

    A number of fixes were done by Ivo, as well as the rt2x00 part
    of this patch.

    Signed-off-by: Ivo van Doorn
    Signed-off-by: Johannes Berg
    Acked-by: David S. Miller
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch modifies struct ieee80211_tx_control to give band
    info and the rate index (instead of rate pointers) to drivers.
    This mostly serves to reduce the TX control structure size to
    make it fit into skb->cb so that the fragmentation code can
    put it there and we can think about passing it to drivers that
    way in the future.

    The rt2x00 driver update was done by Ivo, thanks.

    Signed-off-by: Ivo van Doorn
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Having drivers start queues is just confusing, their ->start()
    callback can block and do whatever is necessary, so let mac80211
    start queues and have drivers wake queues when necessary (to get
    packets flowing again right away.)

    Signed-off-by: Johannes Berg
    Acked-by: David S. Miller
    Signed-off-by: John W. Linville

    Johannes Berg
     

15 May, 2008

1 commit

  • trying to clean up the signal/noise code. the previous code in mac80211 had
    confusing names for the related variables, did not have much definition of
    what units of signal and noise were provided and used implicit mechanisms from
    the wireless extensions.

    this patch introduces hardware capability flags to let the hardware specify
    clearly if it can provide signal and noise level values and which units it can
    provide. this also anticipates possible new units like RCPI in the future.

    for signal:

    IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific
    IEEE80211_HW_SIGNAL_DB - dB difference to unspecified reference point
    IEEE80211_HW_SIGNAL_DBM - dBm, difference to 1mW

    for noise we currently only have dBm:

    IEEE80211_HW_NOISE_DBM - dBm, difference to 1mW

    if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has
    to provide the maximum value (max_signal) it reports in order for applications
    to make sense of the signal values.

    i tried my best to find out for each driver what it can provide and update it
    but i'm not sure (?) for some of them and used the more conservative guess in
    doubt. this can be fixed easily after this patch has been merged by changing
    the hardware flags of the driver.

    DRIVER SIGNAL MAX NOISE QUAL
    -----------------------------------------------------------------
    adm8211 unspec(?) 100 n/a missing
    at76_usb unspec(?) (?) unused missing
    ath5k dBm dBm percent rssi
    b43legacy dBm dBm percent jssi(?)
    b43 dBm dBm percent jssi(?)
    iwl-3945 dBm dBm percent snr+more
    iwl-4965 dBm dBm percent snr+more
    p54 unspec 127 n/a missing
    rt2x00 dBm n/a percent rssi+tx/rx frame success
    rt2400 dBm n/a
    rt2500pci dBm n/a
    rt2500usb dBm n/a
    rt61pci dBm n/a
    rt73usb dBm n/a
    rtl8180 unspec(?) 65 n/a (?)
    rtl8187 unspec(?) 65 (?) noise(?)
    zd1211 dB(?) 100 n/a percent

    drivers/net/wireless/ath5k/base.c: Changes-licensed-under: 3-Clause-BSD

    Signed-off-by: Bruno Randolf
    Signed-off-by: John W. Linville

    Bruno Randolf
     

08 May, 2008

1 commit

  • The callback takes a ieee80211_tx_queue_stats with a contained
    array of ieee80211_tx_queue_stats_data, remove the former, rename
    the latter to ieee80211_tx_queue_stats and make tx_stats() take
    the array directly.

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

    Johannes Berg
     

09 Apr, 2008

1 commit


01 Mar, 2008

1 commit