05 Nov, 2011

1 commit


03 Nov, 2011

16 commits

  • Perform "echo test" when cmd queue stuck detected, somethime it will cause
    calltrace. I am not sure how to fix it yet, just remove the action now until
    find a better way to handle it.

    Reported-by: Reinette Chatre
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Wey-Yi Guy
     
  • The driver can spam the logs with "RX: Packet dropped" messages. These drops
    originate from 1. a correpted PLCP, 2. decryption errors, and 3. packet
    size underruns. Condition #3 logs a separate message, thus no dropped message
    is needed.

    Signed-off-by: Larry Finger
    Signed-off-by: John W. Linville

    Larry Finger
     
  • 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
     
  • Continue the init process even fail to enable msi

    out_iounmap is no longer used, remove it

    Reported-by: werner
    Tested-by: werner
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Wey-Yi Guy
     
  • Commit 2e30168b ("libertas: terminate scan when stopping interface")
    adds cleanup code to lbs_eth_stop to call cfg80211_scan_done if there's
    an outstanding cfg80211_scan_request. However, it assumes that the
    scan request was allocated via the cfg80211 stack. Libertas has
    its own internal allocation method, kept track of with
    priv->internal_scan. This doesn't set scan_req->wiphy, amongst other
    things, which results in hitting a BUG() when we call cfg80211_scan_done
    on the request.

    This provides a function to take care of the low-level scan_req cleanup
    details. We simply call that to deal with finishing up scan requests.

    The bug we were hitting was:

    [ 964.321495] kernel BUG at net/wireless/core.h:87!
    [ 964.329970] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [ 964.341963] pgd = dcf80000
    ...
    [ 964.849998] 9fe0: 00000000 beb417b8 4018e280 401e822c 60000010 00000004 00000000 00000000
    [ 964.865007] [] (__bug+0x1c/0x28) from [] (cfg80211_scan_done+0x54/0x6c)
    [ 964.895324] [] (cfg80211_scan_done+0x54/0x6c) from [] (lbs_eth_stop+0x10c/0x188 [libertas])
    [ 964.895324] [] (lbs_eth_stop+0x10c/0x188 [libertas]) from [] (__dev_close_many+0x94/0xc4)
    [ 964.918995] [] (__dev_close_many+0x94/0xc4) from [] (dev_close_many+0x78/0xe0)

    Signed-off-by: Andres Salomon
    Acked-by: Dan Williams
    Signed-off-by: John W. Linville

    Andres Salomon
     
  • During the fast channel change noise floor values are being loaded
    twice at init_cal and after channel_change. The commit "ath9k_hw:
    Improve fast channel change for AR9003 chips" overlooked it that
    caused failure to load nf while doing bgscan. This patch performs noise
    floor calibration after the fast and full reset.

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

    Rajkumar Manoharan
     
  • This patch fixes system hang when resuming from S3 state
    and lower rate sens failure issue.

    Cc: stable@kernel.org
    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville

    Rajkumar Manoharan
     
  • 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
     
  • Previously the driver did not care if TX_CTL_REQ_TX_STATUS
    was set on aggregated frames or not and it would silently
    drop successfully sent frames if possible [much like:
    "no news is good news!"].

    But, TX_CTL_REQ_TX_STATUS was invented for a reason and
    no tx status report should ever be dropped if it is set.

    Reported-by: Johannes Berg
    Signed-off-by: Christian Lamparter
    Signed-off-by: John W. Linville

    Christian Lamparter
     
  • The commit ce407afc10 introduced regression for AR9330/AR9340
    register offsets. Some of the register offsets are common
    for AR9330/AR9340/AR9485 except AR9380. Fix that.

    Cc: stable@kernel.org [3.1.0+]
    Cc: Senthil Balasubramanian
    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville

    Rajkumar Manoharan
     
  • 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
     
  • IQ calibration during fast channel change sometimes failed
    with RTT. And also restoring invalid radio retention readings
    during init cal could cause failure to set the channel properly.
    This patch counts the valid rtt history readings and clears
    rtt mask.

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

    Rajkumar Manoharan
     
  • My recent commits (3782c69d, 324c74a) introduced regression
    for register offset selection that based on the macversion.
    Not using parentheses in proper manner for ternary operator
    leads to select wrong offset for the registers.

    This issue was observed with AR9462 chip that immediate disconnect
    after the association with the following message

    ieee80211 phy3: wlan0: Failed to send nullfunc to AP 00:23:69:12:ea:47
    after 500ms, disconnecting.

    Cc: stable@kernel.org
    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville

    Rajkumar Manoharan
     
  • As Stanislaw pointed out, my patch

    iwlagn: fix a race in the unmapping of the TFDs

    solved only part of the problem. The race still exists for TFDs of
    the host commands. Fix that too.

    Reported-by: Stanislaw Gruszka
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Emmanuel Grumbach
     
  • John W. Linville
     

01 Nov, 2011

6 commits

  • When loading the usb-configuration we do not signal the end of configuration on
    memory allocation error. This patch moves the memory allocation to the top so
    every error path uses "goto error" now to correctly send the usb-ctrl message
    when detecting some error.

    This also replaces GFP_ATOMIC with GFP_KERNEL as we are allowed to sleep here.

    Signed-off-by: David Herrmann
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    David Herrmann
     
  • A workqueue is allowed to sleep so we can safely use GFP_KERNEL instead of
    GFP_ATOMIC. This is still legacy code when the driver used timer BHs and not a
    worqueue.

    Signed-off-by: David Herrmann
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    David Herrmann
     
  • When disconnecting a bcm203x device we kill and destroy the usb-urb, however,
    there might still be a pending work-structure which resubmits the now invalid
    urb. To avoid this race condition, we simply set a shutdown-flag and
    synchronously kill the worker first.

    This also adds a comment to all schedule_work()s, as it is really not clear
    that they are used as replacement for short timers (which can be seen in the git
    history).

    Signed-off-by: David Herrmann
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    David Herrmann
     
  • We are allowed to sleep here so no need to use GFP_ATOMIC. The caller
    (ath3k_probe) calls request_firmware() which definitely sleeps. Hence, we should
    avoid using GFP_ATOMIC.

    Signed-off-by: David Herrmann
    Signed-off-by: Gustavo F. Padovan

    David Herrmann
     
  • The HCI_MGMT flag should only be set when user space requests the full
    controller information. This way we avoid potential issues with setting
    change events ariving before the actual read_controller_info command
    finishes.

    Signed-off-by: Johan Hedberg
    Signed-off-by: Gustavo F. Padovan

    Johan Hedberg
     
  • I've noticed that my CSR usb dongle was not working if it was plugged in when
    PC was booting. It looks like I get two HCI reset command complete events (see
    hcidump logs below).
    The root cause is reset called from off_timer. Timeout for this reset to
    complete is set to 250ms and my bt dongle requires more time for replying with
    command complete event. After that, chip seems to reply with reset command
    complete event for next non-reset command.

    Attached patch increase mentioned timeout to HCI_INIT_TIMEOUT, this value is
    already used for timeouting hci_reset_req in hci_dev_reset().

    This might also be related to BT not working after suspend that was reported
    here some time ago.

    Hcidump log:

    2011-09-12 23:13:27.379465 < HCI Command: Reset (0x03|0x0003) plen 0
    2011-09-12 23:13:27.380797 > HCI Event: Command Complete (0x0e) plen 4
    Reset (0x03|0x0003) ncmd 1
    status 0x00
    2011-09-12 23:13:27.380859 < HCI Command: Read Local Supported Features (0x04|0x000
    3) plen 0
    2011-09-12 23:13:27.760789 > HCI Event: Command Complete (0x0e) plen 4
    Reset (0x03|0x0003) ncmd 1
    status 0x00
    2011-09-12 23:13:27.760831 < HCI Command: Read Local Version Information (0x04|0x00
    01) plen 0
    2011-09-12 23:13:27.764780 > HCI Event: Command Complete (0x0e) plen 12
    Read Local Version Information (0x04|0x0001) ncmd 1
    status 0x00
    HCI Version: 1.1 (0x1) HCI Revision: 0x36f
    LMP Version: 1.1 (0x1) LMP Subversion: 0x36f
    Manufacturer: Cambridge Silicon Radio (10)

    Signed-off-by: Szymon Janc
    Signed-off-by: Gustavo F. Padovan

    Szymon Janc
     

30 Oct, 2011

9 commits

  • commit 2425717b27eb (net: allow vlan traffic to be received under bond)
    broke ARP processing on vlan on top of bonding.

    +-------+
    eth0 --| bond0 |---bond0.103
    eth1 --| |
    +-------+

    52870.115435: skb_gro_reset_offset
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The route lookup to find a previously auto-configured route for a prefixes used
    to use rt6_lookup(), with the prefix from the RA used as an address. However,
    that kind of lookup ignores routing tables, the prefix length and route flags,
    so when there were other matching routes, even in different tables and/or with
    a different prefix length, the wrong route would be manipulated.

    Now, a new function "addrconf_get_prefix_route()" is used for the route lookup,
    which searches in RT6_TABLE_PREFIX and takes the prefix-length and route flags
    into account.

    Signed-off-by: Andreas Hofmeister
    Signed-off-by: David S. Miller

    Andreas Hofmeister
     
  • This patch resolves two sets of race conditions.

    Mitsuo Hayasaka reported the
    first, as follows:

    The bond_close() calls cancel_delayed_work() to cancel delayed works.
    It, however, cannot cancel works that were already queued in workqueue.
    The bond_open() initializes work->data, and proccess_one_work() refers
    get_work_cwq(work)->wq->flags. The get_work_cwq() returns NULL when
    work->data has been initialized. Thus, a panic occurs.

    He included a patch that converted the cancel_delayed_work calls
    in bond_close to flush_delayed_work_sync, which eliminated the above
    problem.

    His patch is incorporated, at least in principle, into this
    patch. In this patch, we use cancel_delayed_work_sync in place of
    flush_delayed_work_sync, and also convert bond_uninit in addition to
    bond_close.

    This conversion to _sync, however, opens new races between
    bond_close and three periodically executing workqueue functions:
    bond_mii_monitor, bond_alb_monitor and bond_activebackup_arp_mon.

    The race occurs because bond_close and bond_uninit are always
    called with RTNL held, and these workqueue functions may acquire RTNL to
    perform failover-related activities. If bond_close or bond_uninit is
    waiting in cancel_delayed_work_sync, deadlock occurs.

    These deadlocks are resolved by having the workqueue functions
    acquire RTNL conditionally. If the rtnl_trylock() fails, the functions
    reschedule and return immediately. For the cases that are attempting to
    perform link failover, a delay of 1 is used; for the other cases, the
    normal interval is used (as those activities are not as time critical).

    Additionally, the bond_mii_monitor function now stores the delay
    in a variable (mimicing the structure of activebackup_arp_mon).

    Lastly, all of the above renders the kill_timers sentinel moot,
    and therefore it has been removed.

    Tested-by: Mitsuo Hayasaka
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Jay Vosburgh
     
  • o Updated version number to 5.0.25

    o Do not hold onto RESETTING_BIT for entire duration of LED/ beacon test.
    Instead, just checking for RESETTING_BIT not set before sending config_led
    command down to card.

    o Take rtnl_lock instead of RESETTING_BIT for beacon test while sending
    config_led command down to make sure interface cannot be brought up/ down.

    o Allocate and free resources if interface is down before
    sending the config_led command. This is to make sure config_led
    command sending doesn't fail.

    o Clear QLCNIC_LED_ENABLE bit if beacon/ LED test fails to start.

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • Updated qlcnic's license file.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • Signed-off-by: Sony Chacko
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sony Chacko
     
  • If promiscous mode setting fails, reset loopback mode setting in firmware.

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • In fw reset path, we should consider any change in device state as an
    ack from the other driver. When that happens, we don't have to wait for
    an explicit ack.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • David S. Miller
     

29 Oct, 2011

2 commits


28 Oct, 2011

6 commits