1. 05 May, 2011 5 commits
    • Daniel Drake's avatar
      libertas: remove tx_timeout handler · 7e4b4eec
      Daniel Drake authored
      As described at http://marc.info/?l=linux-netdev&m=130428493104730&w=2
      libertas frequently generates spurious tx timeouts, because the tx
      queue is brought down for extended periods during scanning. The net
      layer takes a look and incorrectly assumes the queue has been down for
      several seconds, and generates a tx_timeout.
      
      One way to fix this is to bump the trans_start counter while scanning
      so that the network layer knows that the device is still alive, but
      I think the tx_timeout handler is implemented wrongly here and not of
      any real use, so I vote to remove it.
      
      As explained at http://marc.info/?l=linux-wireless&m=130430311115755&w=2
      the watchdog is primarily meant to deal with lockup on the hardware TX
      path (detected by the tx queue being stopped for an extended period of
      time), but this is unlikely to happen with libertas. In this case, the tx
      queue is stopped only while waiting for lbs_thread to send the queued frame
      to the driver, and lbs_thread wakes up the queue immediately after, even
      if the frame could not be sent correctly.
      
      So, the only hardware-related possibility that this catches is if
      hw_host_to_card hangs - this is something I have never seen. And if it
      were to happen, nothing done by lbs_tx_timeout would actually wake up
      lbs_thread any quicker than otherwise.
      
      Removing this oddly-behaving spuriously-firing tx_timeout handler should
      fix an occasional kernel crash during resume
      (http://dev.laptop.org/ticket/10748)
      Signed-off-by: default avatarDaniel Drake <dsd@laptop.org>
      Acked-by: default avatarDan Williams <dcbw@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      7e4b4eec
    • Rajkumar Manoharan's avatar
      mac80211: use wake_queue to restart trasmit · 470ab2a2
      Rajkumar Manoharan authored
      netif_tx_start_all_queues is used to allow the upper layer
      to transmit frames but it does not restart transmission.
      To restart the trasmission use netif_tx_wake_all_queues.
      Not doing so, sometimes stalls the transmission and the
      application has to be restarted to proceed further.
      
      This issue was originally found while sending udp traffic
      in higer bandwidth in open environment without bgscan.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      470ab2a2
    • Rajkumar Manoharan's avatar
      ath9k: Fix drain txq failure in flush · 2f6fc351
      Rajkumar Manoharan authored
      While draining the txq in flush, the buffers can be
      added into the tx queue by tx_tasklet which leads to
      unneccesary chip reset.
      
      This issue was originially found with AR9382 and
      running heavy uplink udp traffic with higher bandwidth
      and doing frequent bgscan.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      2f6fc351
    • John W. Linville's avatar
    • Mohammed Shafi Shajakhan's avatar
      mac80211: Fix a warning due to skipping tailroom reservation for IV · eaef6a93
      Mohammed Shafi Shajakhan authored
      The devices that require IV generation in software need tailroom
      reservation  for ICVs used in TKIP or WEP encryptions.
      Currently, decision to skip the tailroom reservation in the tx
      path was taken only on whether driver wants MMIC to be generated
      in software or not. Following patch appends IV generation check for
      such decisions and fixes the following warning.
      
      WARNING: at net/mac80211/wep.c:101 ieee80211_wep_add_iv+0x56/0xf3()
      Hardware name: 64756D6
      Modules linked in: ath9k ath9k_common ath9k_hw
      Pid: 0, comm: swapper Tainted: G        W   2.6.39-rc5-wl
       Call Trace:
      [<c102fd29>] warn_slowpath_common+0x65/0x7a
      [<c1465c4e>] ? ieee80211_wep_add_iv+0x56/0xf3
      [<c102fd4d>] warn_slowpath_null+0xf/0x13
      [<c1465c4e>] ieee80211_wep_add_iv+0x56/0xf3
      [<c1466007>] ieee80211_crypto_wep_encrypt+0x63/0x88
      [<c1478bf3>] ieee80211_tx_h_encrypt+0x2f/0x63
      [<c1478cba>] invoke_tx_handlers+0x93/0xe1
      [<c1478eda>] ieee80211_tx+0x4b/0x6d
      [<c147907c>] ieee80211_xmit+0x180/0x188
      [<c147779d>] ? ieee80211_skb_resize+0x95/0xd9
      [<c1479edf>] ieee80211_subif_start_xmit+0x64f/0x668
      [<c13956fc>] dev_hard_start_xmit+0x368/0x48c
      [<c13a8bd6>] sch_direct_xmit+0x4d/0x101
      [<c1395ae1>] dev_queue_xmit+0x2c1/0x43f
      [<c13a74a2>] ? eth_header+0x1e/0x90
      [<c13a7400>] ? eth_type_trans+0x91/0xc2
      [<c13a7484>] ? eth_rebuild_header+0x53/0x53
      [<c139f079>] neigh_resolve_output+0x223/0x27e
      [<c13c6b23>] ip_finish_output2+0x1d4/0x1fe
      [<c13c6bc6>] ip_finish_output+0x79/0x7d
      [<c13c6cbe>] T.1075+0x43/0x48
      [<c13c6e6e>] ip_output+0x75/0x7b
      [<c13c4970>] dst_output+0xc/0xe
      [<c13c62c9>] ip_local_out+0x17/0x1a
      [<c13c67bb>] ip_queue_xmit+0x2aa/0x2f8
      [<c138b742>] ? sk_setup_caps+0x21/0x92
      [<c13d95ea>] ? __tcp_v4_send_check+0x7e/0xb7
      [<c13d5d2e>] tcp_transmit_skb+0x6a1/0x6d7
      [<c13d533b>] ? tcp_established_options+0x20/0x8b
      [<c13d6f28>] tcp_retransmit_skb+0x43a/0x527
      [<c13d8d6d>] tcp_retransmit_timer+0x32e/0x45d
      [<c13d8f23>] tcp_write_timer+0x87/0x16c
      [<c103a030>] run_timer_softirq+0x156/0x1f9
      [<c13d8e9c>] ? tcp_retransmit_timer+0x45d/0x45d
      [<c1034d65>] __do_softirq+0x97/0x14a
      [<c1034cce>] ? irq_enter+0x4d/0x4d
      
      Cc: Yogesh Powar <yogeshp@marvell.com>
      Reported-by: default avatarFabio Rossi <rossi.f@inwind.it>
      Tested-by: default avatarFabio Rossi <rossi.f@inwind.it>
      Signed-off-by: default avatarMohammed Shafi Shajakhan <mshajakhan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      eaef6a93
  2. 02 May, 2011 35 commits