09 Dec, 2010

16 commits


08 Dec, 2010

2 commits

  • Call netif_napi_{add,del}() on the NAPI contexts in the new and
    old channels, respectively.

    Since efx_init_napi() cannot fail, make its return type void.

    Signed-off-by: Ben Hutchings

    Ben Hutchings
     
  • If we are using a legacy interrupt, our IRQ may be shared and our
    interrupt handler may be called even though interrupts are disabled on
    the NIC. When we change ring sizes, we reallocate the event queue and
    the interrupt handler may use an invalid pointer when called for
    another device's interrupt.

    Maintain a legacy_irq_enabled flag and test that at the top of the
    interrupt handler. Note that this problem results from the need to
    work around broken INT_ISR0 reads, and does not affect the legacy
    interrupt handler for Falcon A1.

    Signed-off-by: Ben Hutchings

    Ben Hutchings
     

07 Dec, 2010

2 commits

  • After freeing the rings we were not zeroing out the ring count values.
    This patch now clears these counts correctly.

    Reported-by: Yinghai Lu
    Signed-off-by: Don Skidmore
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • Pavel Emelyanov tried to fix a race between sk_filter_(de|at)tach and
    sk_clone() in commit 47e958eac280c263397

    Problem is we can have several clones sharing a common sk_filter, and
    these clones might want to sk_filter_attach() their own filters at the
    same time, and can overwrite old_filter->rcu, corrupting RCU queues.

    We can not use filter->rcu without being sure no other thread could do
    the same thing.

    Switch code to a more conventional ref-counting technique : Do the
    atomic decrement immediately and queue one rcu call back when last
    reference is released.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

03 Dec, 2010

7 commits


02 Dec, 2010

6 commits

  • I found a problem using an IPv6 over IPv4 tunnel. When CONFIG_IPV6_SIT
    was enabled, the packets would be rejected as net/ipv6/sit.c was catching
    all IPPROTO_IPV6 packets and returning an ICMP port unreachable error.

    I think this patch fixes the problem cleanly. I believe the code in
    net/ipv4/tunnel4.c:tunnel4_rcv takes care of it properly if none of the
    handlers claim the skb.

    Signed-off-by: David McCullough
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    David McCullough
     
  • Restore the check for an unassigned mac address before adopting the
    first slaves as it's own. The change in behavior was introduced by:

    commit c20811a79e671a6a1fe86a8c1afe04aca8a7f085
    Author: Jiri Pirko

    bonding: move dev_addr cpy to bond_enslave

    Signed-off-by: David Strand
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    David Strand
     
  • The code for the b44_wap54g10_workaround was never included, because
    the config option was wrong. The nvram_get function was never in
    mainline kernel, only in external OpenWrt patches.

    The code should be compiled in when CONFIG_BCM47XX is selected and not
    when CONFIG_SSB_DRIVER_MIPS is selected, because nvram_getenv is only
    available on bcm47xx platforms and now in the mainline kernel code.
    Using an include is better than a second function declaration, to fix
    this when the function signature changes.

    Signed-off-by: Hauke Mehrtens
    Signed-off-by: David S. Miller

    Hauke Mehrtens
     
  • The ip6_tunnel always assumes it consumes 40 bytes (ip6 hdr) of the mtu of the
    underlaying device. So for a normal ethernet bearer, the mtu of the ip6_tunnel is
    1460.
    However, when creating a tunnel the encap limit option is enabled by default, and it
    consumes 8 bytes more, so the true mtu shall be 1452.

    I dont really know if this breaks some statement in some RFC, so this is a request for
    comments.

    Signed-off-by: Anders Franzen
    Signed-off-by: David S. Miller

    Anders Franzen
     
  • Atheros 3011 has small sflash firmware and needs to be
    blacklisted in transport driver to load actual firmware
    in DFU driver.

    Signed-off-by: Bala Shanmugam
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    Bala Shanmugam
     
  • If a device is autosuspended an inability to resubmit URBs is
    to be expected. Check the error code and only log real errors.
    (Now that autosuspend is default enabled for btusb, those log
    messages were happening all the time e.g. with a BT mouse)

    Signed-off-by: Stefan Seyfried
    Signed-off-by: Oliver Neukum
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    Stefan Seyfried
     

01 Dec, 2010

4 commits

  • AR_RxKeyIdxValid will not be set for bcast/mcast frames and so relying
    this status for MIC failed frames is buggy.

    Due to this, MIC failure events for broadcast frames are not sent to
    supplicant resulted in AP disconnecting the STA.

    Able to pass Wifi Test case 5.2.18 with this fix.

    Cc: Stable (2.6.36+)
    Signed-off-by: Senthil Balasubramanian
    Signed-off-by: John W. Linville

    Senthil Balasubramanian
     
  • Th commit titled "mac80211: clean up rx handling wrt. found_sta"
    removed found_sta variable which caused a MIC failure event
    to be reported twice for a single failure to supplicant resulted
    in STA disconnect.

    This should fix WPA specific countermeasures WiFi test case (5.2.17)
    issues with mac80211 based drivers which report MIC failure events in
    rx status.

    Cc: Stable (2.6.37)
    Signed-off-by: Senthil Balasubramanian
    Signed-off-by: John W. Linville

    Senthil Balasubramanian
     
  • This patch fixes an curious issue due to insufficient
    rx frame filtering.

    Saqeb Akhter reported frequent disconnects while streaming
    videos over samba:
    > [ 1166.512087] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
    > [ 1526.059997] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
    > [ 2125.324356] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
    > [...]

    The reason is that the device generates frames with slightly
    bogus SA/TA addresses.

    e.g.:
    [ 2314.402316] Ignore 9f:1f:31:f8:64:ff
    [ 2314.402321] Ignore 9f:1f:31:f8:64:ff
    [ 2352.453804] Ignore 0d:1f:31:f8:64:ff
    [ 2352.453808] Ignore 0d:1f:31:f8:64:ff
    ^^ the group-address flag is set!
    (the correct SA/TA would be: 00:1f:31:f8:64:ff)

    Since the AP does not know from where the frames come, it
    generates a DEAUTH response for the (invalid) mcast address.
    This mcast deauth frame then passes through all filters and
    tricks the stack into thinking that the AP brutally kicked
    us!

    This patch fixes the problem by simply ignoring
    non-broadcast, group-addressed deauth/disassoc frames.

    Cc: Jouni Malinen
    Cc: Johannes Berg
    Reported-by: Saqeb Akhter
    Signed-off-by: Christian Lamparter
    Signed-off-by: John W. Linville

    Christian Lamparter
     
  • This fixes the problem causing the following trace:

    ------------[ cut here ]------------
    WARNING: at linux-2.6.34/net/wireless/core.c:633 wdev_cleanup_work+0xb7/0xe0 [cfg80211]()
    Hardware name: Latitude C840
    Pid: 707, comm: cfg80211 Not tainted 2.6.34.7-0.5-desktop #1
    Call Trace:
    [] try_stack_unwind+0x173/0x190
    [] dump_trace+0x3f/0xe0
    [] show_trace_log_lvl+0x4b/0x60
    [] show_trace+0x18/0x20
    [] dump_stack+0x6d/0x72
    [] warn_slowpath_common+0x6e/0xb0
    [] warn_slowpath_null+0x13/0x20
    [] wdev_cleanup_work+0xb7/0xe0 [cfg80211]
    [] run_workqueue+0x79/0x170
    [] worker_thread+0x83/0xe0
    [] kthread+0x74/0x80
    [] kernel_thread_helper+0x6/0x10
    ---[ end trace 3f0348b3b0c6f4ff ]---

    Reported by: Giacomo Comes
    Signed-off-by: David Kilroy
    Signed-off-by: John W. Linville

    David Kilroy
     

30 Nov, 2010

3 commits

  • commit: "carl9170: revamp carl9170_tx_prepare"
    introduced a peculiar bug that would only show
    up if the the module parameter noht is set to 1.

    Then all outbound voice, video and background
    frames would each invoke a (bogus) RTS/CTS
    handshake.

    Signed-off-by: Christian Lamparter
    Signed-off-by: John W. Linville

    Christian Lamparter
     
  • In order for frame injection to work properly for some use cases
    (e.g., finding the station entry and keys for encryption), mac80211
    needs to find the correct sdata entry. This works when the main vif
    is in AP mode, but commit a2c1e3dad516618cb0fbfb1a62c36d0b0744573a
    broke this particular use case for station main vif. While this type of
    injection is quite unusual operation, it has some uses and we should fix
    it. Do this by changing the monitor vif sdata selection to allow station
    vif to be selected instead of limiting it to just AP vifs. We still need
    to skip some iftypes to avoid selecting unsuitable vif for injection.

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

    Jouni Malinen
     
  • while removing beaconing mode interface, SWBA interrupt
    was never disabled when there are no other beaconing interfaces.

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

    Rajkumar Manoharan