12 May, 2011

1 commit


11 May, 2011

1 commit

  • When we are disconnecting, we set PS off, but this happens before we
    send the deauth/disassoc request. When the deauth/disassoc frames are
    sent, we trigger the dynamic ps timer, which then times out and turns
    PS back on. Thus, PS remains on after disconnecting, causing problems
    when associating again.

    This can be fixed by preventing the timer to start when we're not
    associated anymore.

    Signed-off-by: Luciano Coelho
    Signed-off-by: John W. Linville

    Luciano Coelho
     

23 Apr, 2011

1 commit


21 Apr, 2011

1 commit

  • The locking with SMPS requests means that the
    debugs file should lock the mgd mutex, not the
    iflist mutex. Calls to __ieee80211_request_smps()
    need to hold that mutex, so add an assertion.

    This has always been wrong, but for some reason
    never been noticed, probably because the locking
    error only happens while unassociated.

    Cc: stable@kernel.org [2.6.34+]
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

11 Apr, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)
    net: Add support for SMSC LAN9530, LAN9730 and LAN89530
    mlx4_en: Restoring RX buffer pointer in case of failure
    mlx4: Sensing link type at device initialization
    ipv4: Fix "Set rt->rt_iif more sanely on output routes."
    MAINTAINERS: add entry for Xen network backend
    be2net: Fix suspend/resume operation
    be2net: Rename some struct members for clarity
    pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev
    dsa/mv88e6131: add support for mv88e6085 switch
    ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)
    be2net: Fix a potential crash during shutdown.
    bna: Fix for handling firmware heartbeat failure
    can: mcp251x: Allow pass IRQ flags through platform data.
    smsc911x: fix mac_lock acquision before calling smsc911x_mac_read
    iwlwifi: accept EEPROM version 0x423 for iwl6000
    rt2x00: fix cancelling uninitialized work
    rtlwifi: Fix some warnings/bugs
    p54usb: IDs for two new devices
    wl12xx: fix potential buffer overflow in testmode nvs push
    zd1211rw: reset rx idle timer from tasklet
    ...

    Linus Torvalds
     

08 Apr, 2011

1 commit


05 Apr, 2011

1 commit

  • Cleaning the ieee80211_rx_data.flags field here is wrong, instead the
    flags should be valid accross processing the frame on different
    interfaces. Fix this by removing the incorrect flags=0 assignment.

    Introduced in commit 554891e63a29af35cc6bb403ef34e319518114d0
    (mac80211: move packet flags into packet).

    Signed-off-by: Helmut Schaa
    Signed-off-by: John W. Linville

    Helmut Schaa
     

31 Mar, 2011

1 commit


29 Mar, 2011

4 commits

  • Suppose the aggregation reorder buffer looks like this:

    x-T-R1-y-R2,

    where x and y are frames that have not been received, T is a received
    frame that has timed out, and R1,R2 are received frames that have not
    yet timed out. The proper behavior in this scenario is to move the
    window past x (skipping it), release T and R1, and leave the window at y
    until y is received or R2 times out.

    As written, this code will instead leave the window at R1, because it
    has not yet timed out. Fix this by exiting the reorder loop only when
    the frame that has not timed out AND there are skipped frames earlier in
    the current valid window.

    Signed-off-by: Daniel Halperin
    Signed-off-by: John W. Linville

    Daniel Halperin
     
  • This patch moves 'key' dereference after BUG_ON(!key) so that when key is NULL
    we will see proper trace instead of oops.

    Signed-off-by: Mariusz Kozlowski
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Mariusz Kozlowski
     
  • The ieee80211_key struct can be kfree()d several times in the function, for
    example if some of the key setup functions fails beforehand, but there's no
    check if the struct is still valid before we call memcpy() and INIT_LIST_HEAD()
    on it. In some cases (like it was in my case), if there's missing aes-generic
    module it could lead to the following kernel OOPS:

    Unable to handle kernel NULL pointer dereference at virtual address 0000018c
    ....
    PC is at memcpy+0x80/0x29c
    ...
    Backtrace:
    [] (ieee80211_key_alloc+0x0/0x234 [mac80211]) from [] (ieee80211_add_key+0x70/0x12c [mac80211])
    [] (ieee80211_add_key+0x0/0x12c [mac80211]) from [] (__cfg80211_set_encryption+0x2a8/0x464 [cfg80211])

    Signed-off-by: Petr Štetiar
    Reviewed-by: Johannes Berg
    Signed-off-by: John W. Linville

    Petr Štetiar
     
  • When a client connects in HT mode but does not provide any valid MCS
    rates, the function that finds the next sample rate gets stuck in an
    infinite loop.
    Fix this by falling back to legacy rates if no usable MCS rates are found.

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

    Felix Fietkau
     

22 Mar, 2011

1 commit

  • This field is used to determine the inactivity time. When in AP mode,
    hostapd uses it for kicking out inactive clients after a while. Without this
    patch, hostapd immediately deauthenticates a new client if it checks the
    inactivity time before the client sends its first data frame.

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

    Felix Fietkau
     

19 Mar, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)
    doc: CONFIG_UNEVICTABLE_LRU doesn't exist anymore
    Update cpuset info & webiste for cgroups
    dcdbas: force SMI to happen when expected
    arch/arm/Kconfig: remove one to many l's in the word.
    asm-generic/user.h: Fix spelling in comment
    drm: fix printk typo 'sracth'
    Remove one to many n's in a word
    Documentation/filesystems/romfs.txt: fixing link to genromfs
    drivers:scsi Change printk typo initate -> initiate
    serial, pch uart: Remove duplicate inclusion of linux/pci.h header
    fs/eventpoll.c: fix spelling
    mm: Fix out-of-date comments which refers non-existent functions
    drm: Fix printk typo 'failled'
    coh901318.c: Change initate to initiate.
    mbox-db5500.c Change initate to initiate.
    edac: correct i82975x error-info reported
    edac: correct i82975x mci initialisation
    edac: correct commented info
    fs: update comments to point correct document
    target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c
    ...

    Trivial conflict in fs/eventpoll.c (spelling vs addition)

    Linus Torvalds
     

16 Mar, 2011

1 commit


15 Mar, 2011

2 commits

  • When running an AP interface along with the cooked monitor interface created
    by hostapd, adding an interface and deleting it again triggers a channel type
    recalculation during which the (non-HT) monitor interface takes precedence
    over the HT AP interface, thus causing the channel type to be set to non-HT.
    Fix this by ensuring that a more wide channel type will not be overwritten
    by a less wide channel type.

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

    Felix Fietkau
     
  • Devices without multi rate retry support won't be able to use all rates
    as specified by mintrel_ht. Hence, we can simply skip setting up further
    rates as the devices will only use the first one.

    Also add a special case for devices with only two possible tx rates. We
    use sample_rate -> max_prob_rate for sampling and max_tp_rate ->
    max_prob_rate by default.

    Signed-off-by: Helmut Schaa
    Signed-off-by: John W. Linville

    Helmut Schaa
     

12 Mar, 2011

3 commits


10 Mar, 2011

1 commit


08 Mar, 2011

3 commits

  • The scan code has a race that Michael reported
    he ran into, but it's easy to fix while at the
    same time simplifying the code.

    The race resulted in the following warning:

    ------------[ cut here ]------------
    WARNING: at net/mac80211/scan.c:310 ieee80211_rx_bss_free+0x20c/0x4b8 [mac80211]()
    Modules linked in: [...]
    [] (unwind_backtrace+0x0/0xe0) from [] (warn_slowpath_common+0x4c/0x64)
    [... backtrace wasn't useful ...]

    Reported-by: Michael Buesch
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Add a log message to ieee80211_restart_hw() to highlight
    that special codepath in the logs. This helps debugging
    bugs in the rarely tested restart code.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Michael Buesch
     
  • Compile test only.

    Signed-off-by: Shan Wei
    Signed-off-by: John W. Linville

    Shan Wei
     

05 Mar, 2011

3 commits


04 Mar, 2011

1 commit


02 Mar, 2011

2 commits


26 Feb, 2011

5 commits

  • For devices supported by iwlwifi sometimes
    off-channel transmissions need to be handled
    by the device completely. To support this
    mac80211 needs to pass the frame directly
    to the driver and not through the TX path
    as the driver needs the frame and channel
    information at the same time.

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

    Johannes Berg
     
  • Is still possible to schedule conn_mon_timer after disassociate from
    ieee80211_sta_tx_notify() and ieee80211_offchannel_ps_disable().

    Move disassociate check to ieee80211_sta_reset_conn_monitor() to cover
    all these cases, and add unlikely since in most the time we call
    ieee80211_sta_reset_conn_monitor() when associated.

    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: John W. Linville

    Stanislaw Gruszka
     
  • We need to copy this to allow drivers to look
    at the information where needed.

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

    Johannes Berg
     
  • This reverts 4a332a38
    ("mac80211: Give it some time to do the TSF sync").

    There's no point in waiting with a new IBSS merge
    just because the hardware hasn't merged up with
    the old IBSS yet, and since 34e8f082 we no longer
    attempt to merge with the IBSS we're already in.

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

    Johannes Berg
     
  • 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
     

24 Feb, 2011

2 commits

  • The flag isn't very descriptive -- the intention
    is that the driver provides a TSF timestamp at
    the beginning of the MPDU -- make that clearer
    by renaming the flag to RX_FLAG_MACTIME_MPDU.

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

    Johannes Berg
     
  • There is a race on sending a data frame before the tx completion
    of nullfunc frame for enabling power save. As the data quickly
    follows the nullfunc frame, the AP thinks that the station is out
    of power save and continues to send the frames. Whereas in the
    station, the nullfunc ack will be processed after the tx completion
    of data frame and mac80211 goes to powersave. Thus the power
    save state mismatch between the station and the AP causes some
    data loss and some applications fail because of that. This patch
    fixes this issue.

    Signed-off-by: Vivek Natarajan
    Signed-off-by: John W. Linville

    Vivek Natarajan
     

23 Feb, 2011

2 commits


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