08 Nov, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)
    forcedeth: fix a few sparse warnings (variable shadowing)
    forcedeth: Improve stats counters
    forcedeth: remove unneeded stats updates
    forcedeth: Acknowledge only interrupts that are being processed
    forcedeth: fix race when unloading module
    MAINTAINERS/rds: update maintainer
    wanrouter: Remove kernel_lock annotations
    usbnet: fix oops in usbnet_start_xmit
    ixgbe: Fix compile for kernel without CONFIG_PCI_IOV defined
    etherh: Add MAINTAINERS entry for etherh
    bonding: comparing a u8 with -1 is always false
    sky2: fix regression on Yukon Optima
    netlink: clarify attribute length check documentation
    netlink: validate NLA_MSECS length
    i825xx:xscale:8390:freescale: Fix Kconfig dependancies
    macvlan: receive multicast with local address
    tg3: Update version to 3.121
    tg3: Eliminate timer race with reset_task
    tg3: Schedule at most one tg3_reset_task run
    tg3: Obtain PCI function number from device
    ...

    Linus Torvalds
     

03 Nov, 2011

4 commits

  • Only AID values 1-2007 are valid, but some APs have been
    found to send random bogus values, in the reported case an
    AP that was sending the AID field value 0xffff, an AID of
    0x3fff (16383).

    There isn't much we can do but disable powersave since
    there's no way it can work properly in this case.

    Cc: stable@vger.kernel.org
    Reported-by: Bill C Riemers
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • We need to verify whether the command is successful before allocating
    the station entry to avoid extra processing. This also fixes a memory
    leak on the error path.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     
  • When going back on-channel, we should reconfigure
    the hw iff the hardware is not already configured
    to the operational channel.

    Signed-off-by: Eliad Peller
    Cc: stable@kernel.org # 2.6.39+
    Signed-off-by: John W. Linville

    Eliad Peller
     
  • The offchannel code is currently broken - we should
    remain_off_channel if the work was started, and
    the work's channel and channel_type are the same
    as local->tmp_channel and local->tmp_channel_type.

    However, if wk->chan_type and local->tmp_channel_type
    coexist (e.g. have the same channel type), we won't
    remain_off_channel.

    This behavior was introduced by commit da2fd1f
    ("mac80211: Allow work items to use existing
    channel type.")

    Tested-by: Ben Greear
    Signed-off-by: Eliad Peller
    Cc: stable@kernel.org # 2.6.39+
    Signed-off-by: John W. Linville

    Eliad Peller
     

01 Nov, 2011

3 commits


25 Oct, 2011

1 commit

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (63 commits)
    PM / Clocks: Remove redundant NULL checks before kfree()
    PM / Documentation: Update docs about suspend and CPU hotplug
    ACPI / PM: Add Sony VGN-FW21E to nonvs blacklist.
    ARM: mach-shmobile: sh7372 A4R support (v4)
    ARM: mach-shmobile: sh7372 A3SP support (v4)
    PM / Sleep: Mark devices involved in wakeup signaling during suspend
    PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image
    PM / Hibernate: Do not initialize static and extern variables to 0
    PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
    PM / Hibernate: Add resumedelay kernel param in addition to resumewait
    MAINTAINERS: Update linux-pm list address
    PM / ACPI: Blacklist Vaio VGN-FW520F machine known to require acpi_sleep=nonvs
    PM / ACPI: Blacklist Sony Vaio known to require acpi_sleep=nonvs
    PM / Hibernate: Add resumewait param to support MMC-like devices as resume file
    PM / Hibernate: Fix typo in a kerneldoc comment
    PM / Hibernate: Freeze kernel threads after preallocating memory
    PM: Update the policy on default wakeup settings
    PM / VT: Cleanup #if defined uglyness and fix compile error
    PM / Suspend: Off by one in pm_suspend()
    PM / Hibernate: Include storage keys in hibernation image on s390
    ...

    Linus Torvalds
     

18 Oct, 2011

1 commit


15 Oct, 2011

5 commits

  • Only station flags that are already defined in nl80211 are added for
    now.

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

    Helmut Schaa
     
  • The queue mapping/TID for non-QoS null data
    responses to is never set, making it default
    to BK. Fix that.

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

    Johannes Berg
     
  • Reformat the check, the indentation is completely strange.
    Also change the last part of the condition to make the
    code shorter.

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

    Johannes Berg
     
  • mac80211 already filled in the MCS rate info for rx'ed frames but tx'ed
    frames that are sent to a monitor interface during the status callback
    lack this information.

    Add the radiotap fields for MCS info to ieee80211_tx_status_rtap_hdr
    and populate them when sending tx'ed frames to the monitors.

    The needed headroom is only extended by one byte since we don't include
    legacy rate information in the rtap header for HT frames.

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

    Helmut Schaa
     
  • Get rid of the ieee80211_tx_status_rtap_hdr struct and instead build the
    rtap header dynamically. This makes it easier to extend the rtap header
    generation in the future.

    Add ieee80211_tx_radiotap_len to calculate the expected size of the
    rtap header before generating it. Since we can't check if the rtap
    header fits into the requested headroom during compile time anymore
    add a WARN_ON_ONCE.

    Also move the actual rtap header generation into its own function.

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

    Helmut Schaa
     

12 Oct, 2011

10 commits


08 Oct, 2011

1 commit

  • * pm-qos:
    PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks
    PM / QoS: Add function dev_pm_qos_read_value() (v3)
    PM QoS: Add global notification mechanism for device constraints
    PM QoS: Implement per-device PM QoS constraints
    PM QoS: Generalize and export constraints management code
    PM QoS: Reorganize data structs
    PM QoS: Code reorganization
    PM QoS: Minor clean-ups
    PM QoS: Move and rename the implementation files

    Rafael J. Wysocki
     

04 Oct, 2011

3 commits

  • tx params should be configured per interface.
    add ieee80211_vif param to the conf_tx callback,
    and change all the drivers that use this callback.

    The following spatch was used:
    @rule1@
    struct ieee80211_ops ops;
    identifier conf_tx_op;
    @@
    ops.conf_tx = conf_tx_op;

    @rule2@
    identifier rule1.conf_tx_op;
    identifier hw, queue, params;
    @@
    conf_tx_op (
    - struct ieee80211_hw *hw,
    + struct ieee80211_hw *hw, struct ieee80211_vif *vif,
    u16 queue,
    const struct ieee80211_tx_queue_params *params) {...}

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

    Eliad Peller
     
  • Recently mac80211 was changed to use nullfunc instead of probe
    request for connection monitoring for tx ack status reporting
    hardwares. Sometimes in congested network, STA got disconnected
    quickly after the association. It was observered that the rate
    control was not adopted to environment due to minimal transmission.

    As the nullfunc are used for monitoring purpose, these frames should
    not be sacrificed for rate control updation. So it is better to send
    the monitoring null func frames at minimum rate that could help to
    retain the connection.

    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville

    Rajkumar Manoharan
     
  • Allow injected unicast frames to be sent without having to wait
    for an ACK.

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

    Helmut Schaa
     

01 Oct, 2011

11 commits

  • 802.11 says:
    "Sequence numbers for QoS (+)Null frames may be
    set to any value."

    However, if we use the normal counters then peers
    will get confused with aggregation since there'll
    be holes in the sequence number sequence.

    To avoid that, neither assign a sequence number
    to QoS null frames nor put them on aggregation.

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

    Johannes Berg
     
  • iwlwifi has a separate EOSP notification from
    the device, and to make use of that properly
    it needs to be passed to mac80211. To be able
    to mix with tx_status_irqsafe and rx_irqsafe
    it also needs to be an "_irqsafe" version in
    the sense that it goes through the tasklet,
    the actual flag clearing would be IRQ-safe
    but doing it directly would cause reordering
    issues.

    This is needed in the case of a P2P GO going
    into an absence period without transmitting
    any frames that should be driver-released as
    in this case there's no other way to inform
    mac80211 that the service period ended. Note
    that for drivers that don't use the _irqsafe
    functions another version of this function
    will be required.

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

    Johannes Berg
     
  • iwlwifi needs to know the number of frames that are
    going to be sent to a station while it is asleep so
    it can properly handle the uCode blocking of that
    station.

    Before uAPSD, we got by by telling the device that
    a single frame was going to be released whenever we
    encountered IEEE80211_TX_CTL_POLL_RESPONSE. With
    uAPSD, however, that is no longer possible since
    there could be more than a single frame.

    To support this model, add a new callback to notify
    drivers when frames are going to be released.

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

    Johannes Berg
     
  • My work and some previous work didn't add
    all the flags, add them now and while at it
    simplify the code.

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

    Johannes Berg
     
  • The flaglock in struct sta_info has long been
    something that I wanted to get rid of, this
    finally does the conversion to atomic bitops.

    The conversion itself is straight-forward in
    most places, a few things needed to change a
    bit since we can no longer use multiple bits
    at the same time.

    On x86-64, this is a fairly significant code
    size reduction:
    text data bss dec hex
    427861 23648 1008 452517 6e7a5 before
    425383 23648 976 450007 6ddd7 after

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

    Johannes Berg
     
  • If a PS-poll frame is retried (but was received)
    there is no way to detect that since it has no
    sequence number. As a consequence, the standard
    asks us to not react to PS-poll frames until the
    response to one made it out (was ACKed or lost).

    Implement this by using the WLAN_STA_SP flags to
    also indicate a PS-Poll "service period" and the
    IEEE80211_TX_STATUS_EOSP flag for the response
    packet to indicate the end of the "SP" as usual.

    We could use separate flags, but that will most
    likely completely confuse drivers, and while the
    standard doesn't exclude simultaneously polling
    using uAPSD and PS-Poll, doing that seems quite
    problematic.

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

    Johannes Berg
     
  • For PS-poll, there's a possible race between
    us expiring a frame and the station polling
    for it -- send it a null frame in that case.

    For uAPSD, the standard says that we have to
    send a frame in each SP, so send null if we
    don't have any other frames.

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

    Johannes Berg
     
  • Add uAPSD support to mac80211. This is probably not
    possible with all devices, so advertising it with
    the cfg80211 flag will be left up to drivers that
    want it.

    Due to my previous patches it is now a fairly
    straight-forward extension. Drivers need to have
    accurate TX status reporting for the EOSP frame.
    For drivers that buffer themselves, the provided
    APIs allow releasing the right number of frames,
    but then drivers need to set EOSP and more-data
    themselves. This is documented in more detail in
    the new code itself.

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

    Johannes Berg
     
  • If there are frames for a station buffered in
    the driver, mac80211 announces those in the TIM
    IE but there's no way to release them. Add new
    API to release such frames and use it when the
    station polls for a frame.

    Since the API will soon also be used for uAPSD
    it is easily extensible.

    Note that before this change drivers announcing
    driver-buffered frames in the TIM bit actually
    will respond to a PS-Poll with a potentially
    lower priority frame (if there are any frames
    buffered in mac80211), after this patch a driver
    that hasn't been changed will no longer respond
    at all. This only affects ath9k, which will need
    to be fixed to implement the new API.

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

    Johannes Berg
     
  • It doesn't seem likely, but maybe possible, that the
    more-data bit needs to be recomputed due to changes
    in the queued frames. Clear it for filtered frames
    to ensure that we never send it incorrectly. It'll
    be set again as necessary when we retransmit this
    frame.

    The more likely case is maybe where the station woke
    up after the filtered frame in which case more-data
    should be clear when the frame is transmitted to the
    station since it is now awake.

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

    Johannes Berg
     
  • Now that we no longer use the return value, we no
    longer need to maintain it either, so remove it.

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

    Johannes Berg