1. 28 3月, 2009 1 次提交
    • B
      ath5k: warn and correct rate for unknown hw rate indexes · b7266047
      Bob Copeland 提交于
      ath5k sets up a mapping table from the hardware rate index to
      the rate index used by mac80211; however, we have seen some
      received frames with incorrect rate indexes.  Such frames
      normally get dropped with a warning in __ieee80211_rx(),
      but it doesn't include enough information to track down the
      error.
      
      This patch adds a warning to hw_to_driver_rix for any lookups
      that result in a rate index of -1, then returns a valid rate so
      the frame can be processed.
      
      Changes-licensed-under: 3-Clause-BSD
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Cc: stable@kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b7266047
  2. 28 2月, 2009 1 次提交
  3. 30 1月, 2009 1 次提交
  4. 26 11月, 2008 1 次提交
  5. 23 10月, 2008 1 次提交
  6. 16 9月, 2008 1 次提交
  7. 27 8月, 2008 1 次提交
  8. 23 8月, 2008 1 次提交
    • B
      ath5k: rates cleanup · 63266a65
      Bruno Randolf 提交于
      cleanup the rates structures used by ath5k. instead of separate driver and
      mac80211 rate structures we now setup a static ieee80211_rate array and use it
      directly. no conversion between two different rate structures has to be done
      any more. a lot of unused and confusing junk was deleted.
      
      renamed ath5k_getchannels into ath5k_setup_bands because this is what it does.
      rewrote it to copy the bitrates correctly for each band. this is necessary for
      running different hardware with the same driver (e.g. 5211 and 5212 based
      cards).
      
      add special handling of rates for AR5211 chipsets: it uses different rate codes
      for CCK rates (which are actually like the other chips but with a 0xF mask).
      
      setup a hardware code to rate index reverse mapping table for getting the rate
      index of received frames.
      
      the rates for control frames which have to be set in
      ath5k_hw_write_rate_duration are now in one single array.
      
      drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
      drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
      drivers/net/wireless/ath5k/base.h:      Changes-licensed-under: 3-Clause-BSD
      drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      63266a65
  9. 30 7月, 2008 1 次提交
    • J
      Ath5k: fix memory corruption · 3a0f2c87
      Jiri Slaby 提交于
      When signal is noisy, hardware can use all RX buffers and since the last
      entry in the list is self-linked, it overwrites the entry until we link
      new buffers.
      
      Ensure that we don't free this last one until we are 100% sure that it
      is not used by the hardware anymore to not cause memory curruption as
      can be seen below.
      
      This is done by checking next buffer in the list. Even after that we
      know that the hardware refetched the new link and proceeded further
      (the next buffer is ready) we can finally free the overwritten buffer.
      
      We discard it since the status in its descriptor is overwritten (OR-ed
      by new status) too.
      
      =============================================================================
      BUG kmalloc-4096: Poison overwritten
      -----------------------------------------------------------------------------
      
      INFO: 0xffff810067419060-0xffff810067419667. First byte 0x8 instead of 0x6b
      INFO: Allocated in dev_alloc_skb+0x18/0x30 age=1118 cpu=1 pid=0
      INFO: Freed in skb_release_data+0x85/0xd0 age=1105 cpu=1 pid=3718
      INFO: Slab 0xffffe200019d0600 objects=7 used=0 fp=0xffff810067419048 flags=0x40000000000020c3
      INFO: Object 0xffff810067419048 @offset=4168 fp=0xffff81006741c120
      
      Bytes b4 0xffff810067419038:  4f 0b 02 00 01 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a O.......ZZZZZZZZ
        Object 0xffff810067419048:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xffff810067419058:  6b 6b 6b 6b 6b 6b 6b 6b 08 42 30 00 00 0b 6b 80 kkkkkkkk.B0...k.
        Object 0xffff810067419068:  f0 5d 00 4f 62 08 a3 64 00 0c 42 16 52 e4 f0 5a 360].Ob.243d..B.R344360Z
        Object 0xffff810067419078:  68 81 00 00 7b a5 b4 be 7d 3b 8f 53 cd d5 de 12 h...{245264276};.S315325336.
        Object 0xffff810067419088:  96 10 0b 89 48 54 23 41 0f 4e 2d b9 37 c3 cb 29 ....HT#A.N-2717303313)
        Object 0xffff810067419098:  d1 e0 de 14 8a 57 2a cc 3b 44 0d 78 7a 19 12 15 321340336..W*314;D.xz...
        Object 0xffff8100674190a8:  a9 ec d4 35 a8 10 ec 8c 40 a7 06 0a 51 a7 48 bb 2513543245250.354.@247..Q247H273
        Object 0xffff8100674190b8:  3e cf a1 c7 38 60 63 3f 51 15 c7 20 eb ba 65 30 >ϡ3078`c?Q.307.353272e0
       Redzone 0xffff81006741a048:  bb bb bb bb bb bb bb bb                         273273273273273273273273
       Padding 0xffff81006741a088:  5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
      Pid: 3297, comm: ath5k_pci Not tainted 2.6.26-rc8-mm1_64 #427
      
      Call Trace:
       [<ffffffff802a7306>] print_trailer+0xf6/0x150
       [<ffffffff802a7485>] check_bytes_and_report+0x125/0x180
       [<ffffffff802a75dc>] check_object+0xac/0x260
       [<ffffffff802a9308>] __slab_alloc+0x368/0x6d0
       [<ffffffff80544f82>] ? wireless_send_event+0x142/0x310
       [<ffffffff804b1bd4>] ? __alloc_skb+0x44/0x150
       [<ffffffff80544f82>] ? wireless_send_event+0x142/0x310
       [<ffffffff802aa853>] __kmalloc_track_caller+0xc3/0xf0
       [<ffffffff804b1bfe>] __alloc_skb+0x6e/0x150
      [... stack snipped]
      
      FIX kmalloc-4096: Restoring 0xffff810067419060-0xffff810067419667=0x6b
      
      FIX kmalloc-4096: Marking all objects used
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Acked-by: NNick Kossifidis <mickflemm@gmail.com>
      Cc: Luis R. Rodriguez <mcgrof@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3a0f2c87
  10. 27 6月, 2008 1 次提交
  11. 22 5月, 2008 1 次提交
  12. 08 5月, 2008 1 次提交
  13. 01 3月, 2008 2 次提交
    • L
      ath5k: Port debug.c over to the new band API and enable as build option · b446197c
      Luis R. Rodriguez 提交于
      This patch finishes the port and enables debug as an build option.
      This was tested on:
      
      Atheros AR5213A chip found (MAC: 0x59, PHY: 0x43)
      RF5112A multiband radio found (0x36)
      
      Note:
      
      For 2 GHz band on the above card I noticed we get negative channel
      numbers. Will look into this unless someone beats me to it.
      
      Example out put when loading using:
      
      sudo modprobe ath5k debug=0x00000400
      
       Band 2 GHz: channels 26, rates 12
        channels:
           1 2412 00c0 0000
           2 2417 00c0 0000
           3 2422 00c0 0000
           4 2427 00c0 0000
           5 2432 00c0 0000
           6 2437 00c0 0000
           7 2442 00c0 0000
           8 2447 00c0 0000
           9 2452 00c0 0000
          10 2457 00c0 0000
          11 2462 00c0 0000
          12 2467 00c0 0000
          13 2472 00c0 0000
          14 2484 00c0 0000
         -498 2512 00c0 0000
         -494 2532 00c0 0000
         -490 2552 00c0 0000
         -486 2572 00c0 0000
         -482 2592 00c0 0000
         -478 2612 00c0 0000
         -474 2632 00c0 0000
         -470 2652 00c0 0000
         -466 2672 00c0 0000
         -462 2692 00c0 0000
         -458 2712 00c0 0000
         -454 2732 00c0 0000
       Band 5 GHz: channels 194, rates 8
        channels:
          27 5135 0140 0000
          28 5140 0140 0000
      [... etc ]
         219 6095 0140 0000
         220 6100 0140 0000
        rates:
           60 000b 0000 0000
           90 000f 0000 0000
          120 000a 0000 0000
          180 000e 0000 0000
          240 0009 0000 0000
          360 000d 0000 0000
          480 0008 0000 0000
          540 000c 0000 0000
      
      Changes to base.c, base.h
      Changes-licensed-under: 3-Clause-BSD
      
      Changes to debug.c, debug.h
      Changes-licensed-under: GPL
      Signed-off-by: NLuis R. Rodriguez <mcgrof@winlab.rutgers.edu>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b446197c
    • L
      ath5k: Port to new bitrate/channel API · d8ee398d
      Luis R. Rodriguez 提交于
      Author: Nick Kossifidis <mickflemm@gmail.com>
      
      Tested on 5211, 5213+5112, 5213A+2112A and it wors fine.
      
      Also i figured out a way to process rate vallue found
      on status descriptors, it's still buggy but we are getting
      closer (i think it improved stability a little).
      
      Changes to hw.c, initvals.c, phy.c
      Changes-licensed-under: ISC
      
      Changes to ath5k.h, base.c, base.h
      Changes-licensed-under: 3-Clause-BSD
      Acked-by: NJiri Slaby <jirislaby@gmail.com>
      Signed-off-by: NNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: NLuis R. Rodriguez <mcgrof@winlab.rutgers.edu>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d8ee398d
  14. 29 1月, 2008 4 次提交