1. 25 7月, 2009 3 次提交
  2. 22 7月, 2009 1 次提交
  3. 11 7月, 2009 14 次提交
  4. 08 7月, 2009 1 次提交
    • V
      ath9k: Fix leak in tx descriptor · cbfe89c6
      Vasanthakumar Thiagarajan 提交于
      When we reclaim the tx desc, we always assume that the
      last desc is a holding desc, which is not true, and skip it.
      If the tx queue is drained during channel change, internal
      reset and etc, the last descriptor may not be the holding
      descriptor and we fail to reclaim them. This results in the
      following two issues.
      
      1. Tx stuck - We drop all the frames coming from upper layer
      due to shortage in tx desc.
      
      2. Crash - If we fail to reclaim a tx descriptor, we miss to
      update the tx BA window with the seq number of the frame
      associated to that desc, which, at some point, result in
      the following crash due to an assert failure in ath_tx_addto_baw().
      
      This patch fixes these two issues.
      
       kernel BUG at ../drivers/net/wireless/ath/ath9k/xmit.c:180!
      [155064.304164] invalid opcode: 0000 [#1] SMP
       Call Trace:
        [<fbc6d83b>] ? ath9k_tx+0xeb/0x160 [ath9k]
        [<fbbc9591>]  ipv6? __ieee80211_tx+0x41/0x120 [mac80211]
        [<fbbcb5ae>] ?  aes_i586ieee80211_master_start_xmit+0x28e/0x560 [mac80211]
        [<c037e501>]  aes_generic? _spin_lock_irqsave+0x31/0x40
        [<c02f347b>] ? dev_hard_start_xmit+0x16b/0x1c0
        [<c03058b5>] ? __qdisc_run+0x1b5/0x200
        [<fbbcda5a>] ?  af_packetieee80211_select_queue+0xa/0x100 [mac80211]
        [<c02f53b7>] ?  i915dev_queue_xmit+0x2e7/0x3f0
        [<fbbc9b49>] ? ieee80211_subif_start_xmit+0x369/0x7a0 [mac80211]
        [<c031bc35>] ? ip_output+0x55/0xb0
        [<c02e0188>] ? show_memcpy_count+0x18/0x60
        [<c02eb186>] ? __kfree_skb+0x36/0x90
        [<c02f2202>] ?  binfmt_miscdev_queue_xmit_nit+0xd2/0x110
        [<c02f347b>] ? dev_hard_start_xmit+0x16b/0x1c0
        [<c03058b5>] ? __qdisc_run+0x1b5/0x200
        [<c033bca7>] ?  scoarp_create+0x57/0x2a0
        [<c02f53b7>] ?  bridgedev_queue_xmit+0x2e7/0x3f0
        [<c03034a0>] ? eth_header+0x0/0xc0
        [<c033b95f>]  stp? arp_xmit+0x5f/0x70
        [<c033bf4f>] ? arp_send+0x5f/0x70
        [<c033c8f5>]  bnep? arp_solicit+0x105/0x210
        [<c02fa5aa>] ? neigh_timer_handler+0x19a/0x390
        [<c013bf88>] ? run_timer_softirq+0x138/0x210
        [<c02fa410>] ?  ppdevneigh_timer_handler+0x0/0x390
        [<c02fa410>] ? neigh_timer_handler+0x0/0x390
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cbfe89c6
  5. 19 6月, 2009 3 次提交
  6. 16 6月, 2009 6 次提交
  7. 11 6月, 2009 1 次提交
  8. 04 6月, 2009 6 次提交
    • V
      ath9k: Fix write callback of 'debug' which configures debug mask · 581f725c
      Vasanthakumar Thiagarajan 提交于
      Handle error condition on copy_from_user() properly and
      make sure a NUL terminated char[] is sent to strict_strtoul()
      for proper conversion.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      581f725c
    • J
      rfkill: rewrite · 19d337df
      Johannes Berg 提交于
      This patch completely rewrites the rfkill core to address
      the following deficiencies:
      
       * all rfkill drivers need to implement polling where necessary
         rather than having one central implementation
      
       * updating the rfkill state cannot be done from arbitrary
         contexts, forcing drivers to use schedule_work and requiring
         lots of code
      
       * rfkill drivers need to keep track of soft/hard blocked
         internally -- the core should do this
      
       * the rfkill API has many unexpected quirks, for example being
         asymmetric wrt. alloc/free and register/unregister
      
       * rfkill can call back into a driver from within a function the
         driver called -- this is prone to deadlocks and generally
         should be avoided
      
       * rfkill-input pointlessly is a separate module
      
       * drivers need to #ifdef rfkill functions (unless they want to
         depend on or select RFKILL) -- rfkill should provide inlines
         that do nothing if it isn't compiled in
      
       * the rfkill structure is not opaque -- drivers need to initialise
         it correctly (lots of sanity checking code required) -- instead
         force drivers to pass the right variables to rfkill_alloc()
      
       * the documentation is hard to read because it always assumes the
         reader is completely clueless and contains way TOO MANY CAPS
      
       * the rfkill code needlessly uses a lot of locks and atomic
         operations in locked sections
      
       * fix LED trigger to actually change the LED when the radio state
         changes -- this wasn't done before
      Tested-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> [thinkpad]
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      19d337df
    • J
      ath9k: Add sanity check for beacon_int in adhoc/mesh case · 546256fb
      Jouni Malinen 提交于
      It looks like mac80211 can request the driver to start beaconing with
      a beacon interval of zero in some cases (at least for mesh point). This
      does not sound correct and something may need to be fixed in
      mac80211. However, taken into account the unpleasantness of getting
      stuck in an infinite busy loop with rtnl_lock held, let's add a quick
      workaround in the driver to avoid the worst symptom while someone more
      familiar with the mesh implementation can figure out what should be done
      with mac80211 as far as beacon interval configuration is concerned.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      546256fb
    • J
      ath9k: Add "debug" file to debugfs · 2493928e
      Jeff Hansen 提交于
      This patch adds the debug file to the ath9k debugfs, which lets you modify
      the debug_mask at runtime, without having to reload the ath9k module.
      Signed-off-by: NJeff Hansen <x@jeffhansen.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2493928e
    • J
      ath9k: Combine legacy and 11n rc statistics · bedf087a
      Jeff Hansen 提交于
      This patch combines the legacy and 11n rcstats into one, using the normal
      rate table indices instead of two separate indices for each mode.  Legacy
      rates also get all of the PER and retry information, now, too.
      Signed-off-by: NJeff Hansen <x@jeffhansen.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bedf087a
    • J
      ath9k: Reset SC_OP_TSF_RESET flag after stuck beacon · b74444f8
      Jeff Hansen 提交于
      I have a TrendNet 652-BRP running OpenWRT + ath9k very well.  The only
      problem is that the beacon gets stuck maybe once a day.  After
      Vasanthakumar Thiagarajan's "ath9k: cleanup beacon parameters
      configuration" patch, ath9k would nearly re-configure the beacons after it
      detected the stuck beacon, and did a reset.  But it would fail the
      SC_OP_TSF_RESET check in ath_beacon_config_ap.  This patch gets the beacon
      fully reconfigured after the reset.
      Signed-off-by: NJeff Hansen <x@jeffhansen.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b74444f8
  9. 23 5月, 2009 3 次提交
  10. 21 5月, 2009 2 次提交