1. 21 12月, 2010 7 次提交
  2. 17 12月, 2010 15 次提交
    • L
    • L
      rtl8192ce: Update MAINTAINERS · 3cf0c8ad
      Larry Finger 提交于
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3cf0c8ad
    • B
      ath5k: Fix survey · f15a4bb2
      Bruno Randolf 提交于
      The old survey implementation was broken and returned nonsense data.
      
      Clear cycle counters and survey data on reset. Since the cycle counters easily
      overflow it's better to keep a local version of collected survey data (in ms
      resolution, instead of clockrate) and update this every time survey is
      retrieved. If survey is retrieved often enough to avoid cycle counter overflows
      this works fine, otherwise we could update survey more often, like ath9k does.
      Still only the survey for the current channel is kept.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f15a4bb2
    • L
      rtl8192ce: Fix build on powerpc · 4aea248d
      Larry Finger 提交于
      After merge of the rtl8192ce driver, a powerpc build fails with:
      
      drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192c-sw.c: In function 'rtl92c_init_sw_vars':
      drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192c-sw.c:76: error: implicit declaration of function 'vmalloc'
      drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192c-sw.c:76: warning: cast to pointer from integer of different size
      drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192c-sw.c: In function 'rtl92c_deinit_sw_vars':
      drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192c-sw.c:91: error: implicit declaration of function 'vfree'
      
      The problem is fixed by explicitly including the appropriate header.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4aea248d
    • L
      ath: fix NULL pointer dereference on reg_notifier() · 931299cf
      Luis R. Rodriguez 提交于
      The reg_notifier() was recently updated as being capable of
      having the request passed as NULL, fix ath to follow this API
      change. Without this we end up oopsing:
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
      IP: [<ffffffffa02fb8cb>] ath_reg_notifier_apply+0x5b/0xa0 [ath]
      PGD b4c4c067 PUD b4c4d067 PMD 0
      Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
      last sysfs file: /sys/devices/pci0000:00/0000:00:1b.0/uevent
      CPU 1
      Modules linked in: <etc>
      Pid: 436, comm: modprobe Not tainted 2.6.37-rc5-wl+ #36 6460DWU/6460DWU
      RIP: 0010:[<ffffffffa02fb8cb>]  [<ffffffffa02fb8cb>] ath_reg_notifier_apply+0x5b/0xa0 [ath]
      RSP: 0018:ffff8800b6f6baa8  EFLAGS: 00010246
      RAX: ffff8800b527b254 RBX: ffff8800b532c180 RCX: 0000000000000018
      RDX: ffff8800b530c108 RSI: 0000000000000000 RDI: ffff8800b532c180
      RBP: ffff8800b6f6baa8 R08: ffff8800b532f268 R09: 0000000000000235
      R10: 00000000000016ad R11: 0000000000000018 R12: 0000000000000000
      R13: 0000000000000016 R14: ffff8800b532f268 R15: 0000000000000011
      FS:  00007f0c53104700(0000) GS:ffff8800bed00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 0000000000000004 CR3: 00000000b6531000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process modprobe (pid: 436, threadinfo ffff8800b6f6a000, task ffff8800b404dc40)
      Stack:
       ffff8800b6f6bac8 ffffffffa03ea651 ffff8800b532c180 ffff8800b527b254
       ffff8800b6f6bb38 ffffffffa01835ca ffffffffa019ed00 00000000a019ed80
       0000000000000002 ffff880000000002 ffffffffa0366140 0000000010aee572
      Call Trace:
       [<ffffffffa03ea651>] ath9k_reg_notifier+0x41/0x50 [ath9k]
       [<ffffffffa01835ca>] wiphy_update_regulatory+0x4ba/0x5a0 [cfg80211]
       [<ffffffffa0366140>] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
       [<ffffffffa0366140>] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
       [<ffffffffa017f994>] wiphy_register+0x1d4/0x360 [cfg80211]
       [<ffffffff8114b918>] ? __kmalloc+0x108/0x1c0
       [<ffffffffa0366223>] ieee80211_register_hw+0x183/0x5b0 [mac80211]
       [<ffffffffa03eb49b>] ath9k_init_device+0x66b/0x850 [ath9k]
       [<ffffffffa03f9dd6>] ath_pci_probe+0x2f6/0x3c0 [ath9k]
       [<ffffffff81037529>] ? default_spin_lock_flags+0x9/0x10
       [<ffffffff812e19cf>] local_pci_probe+0x5f/0xd0
       [<ffffffff812e2bf1>] pci_device_probe+0x101/0x120
       [<ffffffff81390aca>] ? driver_sysfs_add+0x7a/0xb0
       [<ffffffff81390c26>] driver_probe_device+0x96/0x1c0
       [<ffffffff81390deb>] __driver_attach+0x9b/0xa0
       [<ffffffff81390d50>] ? __driver_attach+0x0/0xa0
       [<ffffffff81390008>] bus_for_each_dev+0x68/0x90
       [<ffffffff81390a4e>] driver_attach+0x1e/0x20
       [<ffffffff81390309>] bus_add_driver+0xe9/0x290
       [<ffffffffa0407000>] ? ath9k_init+0x0/0x4d [ath9k]
       [<ffffffff81391130>] driver_register+0x80/0x150
       [<ffffffffa0407000>] ? ath9k_init+0x0/0x4d [ath9k]
       [<ffffffffa0407000>] ? ath9k_init+0x0/0x4d [ath9k]
       [<ffffffff812e2e76>] __pci_register_driver+0x56/0xd0
       [<ffffffffa03f9ec3>] ath_pci_init+0x23/0x30 [ath9k]
       [<ffffffffa040702b>] ath9k_init+0x2b/0x4d [ath9k]
       [<ffffffff81002053>] do_one_initcall+0x43/0x190
       [<ffffffff8109fb5b>] sys_init_module+0xbb/0x200
       [<ffffffff8100c042>] system_call_fastpath+0x16/0x1b
      Code: <who even reads this anyway? haha, ok you do>
      RIP  [<ffffffffa02fb8cb>] ath_reg_notifier_apply+0x5b/0xa0 [ath]
       RSP <ffff8800b6f6baa8>
      CR2: 0000000000000004
      ---[ end trace 6d03d3c7eda9f06b ]---
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      931299cf
    • L
      cfg80211: fix null pointer dereference with a custom regulatory request · 2784fe91
      Luis R. Rodriguez 提交于
      Once we moved the core regulatory request to the queue and let
      the scheduler process it last_request will have been left NULL
      until the schedular decides to process the first request. When
      this happens and we are loading a driver with a custom regulatory
      request like all Atheros drivers we end up with a NULL pointer
      dereference. We fix this by checking if the request was a
      custom one.
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
      IP: [<ffffffffa016de87>] freq_reg_info_regd.clone.2+0x27/0x130 [cfg80211]
      PGD 71f91067 PUD 712b2067 PMD 0
      Oops: 0000 [#1] PREEMPT SMP
      last sysfs file: /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/firmware/2-1/loading
      CPU 0
      Modules linked in: ath9k_htc(+) ath9k_common ath9k_hw ath <etc>
      Pid: 3094, comm: insmod Tainted: G        W   2.6.37-rc5-wl #16 INVALID/28427ZQ
      RIP: 0010:[<ffffffffa016de87>]  [<ffffffffa016de87>] freq_reg_info_regd.clone.2+0x27/0x130 [cfg80211]
      RSP: 0018:ffff88007045db78  EFLAGS: 00010282
      RAX: 0000000000000000 RBX: ffffffffa047d9a0 RCX: ffff88007045dbd0
      RDX: 0000000000004e20 RSI: 000000000024cde0 RDI: ffff8800700483e0
      RBP: ffff88007045db98 R08: ffffffffa02f5b40 R09: 0000000000000001
      R10: 000000000000000e R11: 0000000000000001 R12: 0000000000000000
      R13: ffff88007004e3b0 R14: 0000000000000000 R15: ffff880070048340
      FS:  00007f635a707700(0000) GS:ffff880077400000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 0000000000000004 CR3: 00000000708a9000 CR4: 00000000000006f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process insmod (pid: 3094, threadinfo ffff88007045c000, task ffff8800713e3ec0)
      Stack:
       ffffffffa047d9a0 0000000000000000 ffff88007004e3b0 0000000000000000
       ffff88007045dc08 ffffffffa016e147 000000007045dc08 0000000000000002
       ffff8800700483e0 ffffffffa02f5b40 ffff88007045dbd8 0000000000000000
      Call Trace:
       [<ffffffffa016e147>] wiphy_apply_custom_regulatory+0x137/0x1d0 [cfg80211]
       [<ffffffffa047a690>] ? ath9k_reg_notifier+0x0/0x50 [ath9k_htc]
       [<ffffffffa02f47f7>] ath_regd_init+0x347/0x430 [ath]
       [<ffffffffa047b1f5>] ath9k_htc_probe_device+0x6c5/0x960 [ath9k_htc]
       [<ffffffffa0472a2c>] ath9k_htc_hw_init+0xc/0x30 [ath9k_htc]
       [<ffffffffa04747e6>] ath9k_hif_usb_probe+0x216/0x3b0 [ath9k_htc]
       [<ffffffffa03bb6bc>] usb_probe_interface+0x10c/0x210 [usbcore]
       [<ffffffff812aec26>] driver_probe_device+0x96/0x1c0
       [<ffffffff812aedf3>] __driver_attach+0xa3/0xb0
       [<ffffffff812aed50>] ? __driver_attach+0x0/0xb0
       [<ffffffff812adaae>] bus_for_each_dev+0x5e/0x90
       [<ffffffff812ae8c9>] driver_attach+0x19/0x20
       [<ffffffff812ae438>] bus_add_driver+0x168/0x320
       [<ffffffff812af071>] driver_register+0x71/0x140
       [<ffffffff811fc4a8>] ? __raw_spin_lock_init+0x38/0x70
       [<ffffffffa03ba39c>] usb_register_driver+0xdc/0x190 [usbcore]
       [<ffffffffa03a2000>] ? ath9k_htc_init+0x0/0x4f [ath9k_htc]
       [<ffffffffa047499e>] ath9k_hif_usb_init+0x1e/0x20 [ath9k_htc]
       [<ffffffffa03a202b>] ath9k_htc_init+0x2b/0x4f [ath9k_htc]
       [<ffffffff8100212f>] do_one_initcall+0x3f/0x180
       [<ffffffff8109ef5b>] sys_init_module+0xbb/0x200
       [<ffffffff8100bf52>] system_call_fastpath+0x16/0x1b
      Code: <etc, who cares>
      RIP  [<ffffffffa016de87>] freq_reg_info_regd.clone.2+0x27/0x130 [cfg80211]
       RSP <ffff88007045db78>
      CR2: 0000000000000004
      ---[ end trace 79e4193601c8b713 ]---
      Reported-by: NSujith Manoharan <Sujith.Manoharan@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2784fe91
    • V
      ath9k_hw: Configure appropriate Tx power when PAPRD fails · 45ef6a0b
      Vasanthakumar Thiagarajan 提交于
      Target Tx power available in eeprom is for PAPRD. If PAPRD
      fails, paprd scale factor needs to be detected from this
      target tx power.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      45ef6a0b
    • V
      ath9k_hw: Disable PAPRD for rates with low Tx power · 7072bf62
      Vasanthakumar Thiagarajan 提交于
      When the drop in Tx power for a particular mcs rate exceeds
      the paprd scale factor, paprd may not work properly. Disable
      paprd for any such rates.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7072bf62
    • V
    • V
      ath9k_hw: Tx IQ cal changes for AR9003 · 0b2084bc
      Vasanthakumar Thiagarajan 提交于
      Add multiple Tx IQ cal support to improve EVM accross
      different power levels.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0b2084bc
    • V
      ath9k_hw: Move get_streams() to hw.h · 895ad7eb
      Vasanthakumar Thiagarajan 提交于
      This helper can be used in multiple places. Also make
      it inline returning u8.
      Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      895ad7eb
    • V
    • V
      7e68b746
    • J
      nl80211: Add notification for dropped Deauth/Disassoc · cf4e594e
      Jouni Malinen 提交于
      Add a new notification to indicate that a received, unprotected
      Deauthentication or Disassociation frame was dropped due to
      management frame protection being in use. This notification is
      needed to allow user space (e.g., wpa_supplicant) to implement
      SA Query procedure to recover from association state mismatch
      between an AP and STA.
      
      This is needed to avoid getting stuck in non-working state when MFP
      (IEEE 802.11w) is used and a protected Deauthentication or
      Disassociation frame is dropped for any reason. After that, the
      station would silently discard any unprotected Deauthentication or
      Disassociation frame that could be indicating that the AP does not
      have association for the STA (when the Reason Code would be 6 or 7).
      IEEE Std 802.11w-2009, 11.13 describes this recovery mechanism.
      Signed-off-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cf4e594e
    • J
  3. 16 12月, 2010 12 次提交
  4. 15 12月, 2010 6 次提交
    • L
      wl12xx_sdio_test: rename files to match current style · 248daa08
      Luciano Coelho 提交于
      Change some file names and Kconfig settings so that this new module matches
      the new way of using wl12xx instead of wl1271.
      
      Also fix SDIO power enabling and disabling to match the latest way of doing
      it.
      
      Cc: Roger Quadros <roger.quadros@nokia.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      248daa08
    • J
      wl12xx: Change TX queue to be per AC · 6742f554
      Juuso Oikarinen 提交于
      With the current single-queue implementation traffic priorization is not
      working correctly - when using multiple BE streams and one, say VI stream,
      the VI stream will share bandwidth almost equally with the BE streams.
      
      To fix the issue, implement per AC queues, which are emptied in priority
      order to the firmware. To keep it relatively simple, maintain a global
      buffer count and global queue stop/wake instead of per-AC.
      
      With these changes, priorization appears to work just fine.
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      6742f554
    • E
      wl12xx: allow runtime changing of debug_level · 17c1755c
      Eliad Peller 提交于
      Currently, the debug level is set in compilation time (by the DEBUG_LEVEL
      const). This method has the advantage of compiling only the relevant
      messages, while optimizing out the unused ones.
      
      In order to allow runtime control over the debug_level, while optimizing
      out messages when debug messages are not needed, we combine some methods:
      1. use dynamic_debug (pr_debug) rather then printk.
      2. add debug_level module param in order to set debug level during insmod.
      3. add debug_level sysfs file in order to allow dynamic control over the
         debug level.
      
      Since patches for pr_debug_hex_dump() implementation haven't been applied yet,
      we are still temporarly using print_hex_dump().
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      17c1755c
    • G
      wl1271: fixed problem with WPS IEs in probe requests · ea559b46
      Guy Eilam 提交于
      Inclusion of a WPS IE in probe requests caused a problem
      in the driver due to the maximum size of the probe request
      template and the max_scan_ie_len values at initialization.
      
      Increased the size of probe request template
      to the maximum size allowed by the firmware.
      Struct wl12xx_probe_req_template, which was only used
      for calculating the max size of the probe request template,
      is no longer used and needed.
      
      max_scan_ie_len is used for validating the size of
      additional IEs in scan requests.
      Initialized the max_scan_ie_len field to the maximum size
      of the probe request template minus the ieee80211 header size.
      Signed-off-by: NGuy Eilam <guy@wizery.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      ea559b46
    • E
      wl12xx: add auto-arp support · c5312772
      Eliad Peller 提交于
      The auto-arp feature of wl12xx allows the firmware to automatically
      response to arp requests asking for its ip.
      
      in order to use it, we configure the arp response template and
      enable the corresponding bit in wl1271_acx_arp_filter (along with
      passing its ip)
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      c5312772
    • R
      wl1271_sdio_test: Add module for sdio RX/TX testing · b69eb80b
      Roger Quadros 提交于
      This module enables individually generating RX and TX traffic
      over the SDIO bus on which the WL1271 chipset is connected.
      This is required to perform RF interference testing.
      
      The module takes 2 module parameters 'rx' and 'tx'.
      
      To generate RX traffic:
      	modprobe wl1271_sdio_test rx=1
      To generate TX traffic:
      	modprobe wl1271_sdio_test tx=1
      
      To generate both RX & TX traffic, set both rx and tx to 1.
      
      You can change the testing configuration at runtime by changing
      the rx & tx values at /sys/modules/wl1271_sdio_test/
      
      To stop testing simply unload the module.
      Signed-off-by: NRoger Quadros <roger.quadros@nokia.com>
      Reviewed-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      b69eb80b