- Jan 04, 2011
-
-
Gertjan van Wingerde authored
The bssid field in struct rt2x00_intf is only written to once, and is never read from. Remove this field, as it appears to not be needed. Signed-off-by:
Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by:
Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Stezenbach authored
When DRIVER_REQUIRE_TXSTATUS_FIFO is set, intialize the txstatus_fifo, but initialize rt2x00dev->txstatus_tasklet only when both DRIVER_REQUIRE_TXSTATUS_FIFO and rt2x00dev->ops->lib->txstatus_tasklet are set. This allows the txstatus_fifo to be used by rt2800usb which does not use txstatus_tasklet. Signed-off-by:
Johannes Stezenbach <js@sig21.net> Signed-off-by:
Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Stezenbach authored
Signed-off-by:
Johannes Stezenbach <js@sig21.net> Signed-off-by:
Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Christian Lamparter authored
This patch revamps some common code-paths which are shared between (re-)initialization and suspend/resume subroutines. It also adds some helpful comments about quirks and associated difficulties. It's quite big, but it should fix #25382: <https://bugzilla.kernel.org/show_bug.cgi?id=25382 > And hopefully the code is robust enough to deal with all possible suspend/resume scenarios without requiring the user to do any sort of manual and possibly dangerous work. Signed-off-by:
Christian Lamparter <chunkeey@googlemail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Christian Lamparter authored
By removing two "safety" msleeps (and an echo nop), the channel change delay is effectively halved. Previously, the delay could be as long as 260 ms and the device could not go off-channel without risking to miss the next DTIM beacon [interval ~307 ms]. Signed-off-by:
Christian Lamparter <chunkeey@googlemail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Christian Lamparter authored
This patch adds a forgotten bail-out path. Signed-off-by:
Christian Lamparter <chunkeey@googlemail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bob Copeland authored
ath5k_reset is called from process context and takes the cc_lock with plain spin_lock(), but cc_lock can also be taken from tasklets in softirq context. Thus we need to at least use spin_lock_bh. This fixes the following lockdep warning: [ 19.967874] sky2 0000:01:00.0: eth0: enabling interface [ 19.982761] ieee80211 phy0: device now idle [ 20.904809] NET: Registered protocol family 17 [ 21.243857] ieee80211 phy0: device no longer idle - scanning [ 21.404343] [ 21.404346] ================================= [ 21.404450] [ INFO: inconsistent lock state ] [ 21.404518] 2.6.37-rc7-wl+ #242 [ 21.404582] --------------------------------- [ 21.404650] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. [ 21.404721] kworker/u:4/982 [HC0[0]:SC1[3]:HE1:SE0] takes: [ 21.404792] (&(&common->cc_lock)->rlock){+.?...}, at: [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k] [ 21.405011] {SOFTIRQ-ON-W} state was registered at: [ 21.405011] [<c105cadd>] __lock_acquire+0x62f/0x13c1 [ 21.405011] [<c105d944>] lock_acquire+0xd5/0xf1 [ 21.405011] [<c12c978d>] _raw_spin_lock+0x45/0x72 [ 21.405011] [<f8111533>] ath5k_reset+0x2c0/0x349 [ath5k] [ 21.405011] [<f8111a7a>] ath5k_start+0xb8/0x139 [ath5k] [ 21.405011] [<f849c714>] ieee80211_do_open+0x13f/0x819 [mac80211] [ 21.405011] [<f849ce51>] ieee80211_open+0x63/0x66 [mac80211] [ 21.405011] [<c1258b2e>] __dev_open+0x8d/0xb6 [ 21.405011] [<c1255c64>] __dev_change_flags+0x9d/0x114 [ 21.405011] [<c1258a75>] dev_change_flags+0x18/0x44 [ 21.405011] [<c1262990>] do_setlink+0x23f/0x521 [ 21.405011] [<c1262d58>] rtnl_setlink+0xe6/0xea [ 21.405011] [<c126347c>] rtnetlink_rcv_msg+0x18a/0x1a0 [ 21.405011] [<c126d5f0>] netlink_rcv_skb+0x35/0x7b [ 21.405011] [<c12632eb>] rtnetlink_rcv+0x20/0x27 [ 21.405011] [<c126d370>] netlink_unicast+0x1bb/0x21e [ 21.405011] [<c126db21>] netlink_sendmsg+0x23b/0x288 [ 21.405011] [<c124823c>] sock_sendmsg+0xac/0xc4 [ 21.405011] [<c1248680>] sys_sendmsg+0x152/0x1a2 [ 21.405011] [<c1249b0d>] sys_socketcall+0x214/0x275 [ 21.405011] [<c10029d0>] sysenter_do_call+0x12/0x36 [ 21.405011] irq event stamp: 138032 [ 21.405011] hardirqs last enabled at (138032): [<c12ca252>] _raw_spin_unlock_irqrestore+0x3b/0x5e [ 21.405011] hardirqs last disabled at (138031): [<c12c98cc>] _raw_spin_lock_irqsave+0x18/0x7e [ 21.405011] softirqs last enabled at (138024): [<f84a570e>] ieee80211_tx_skb+0x47/0x49 [mac80211] [ 21.405011] softirqs last disabled at (138027): [<c100452b>] do_softirq+0x63/0xb4 [ 21.405011] [ 21.405011] other info that might help us debug this: [ 21.405011] 3 locks held by kworker/u:4/982: [ 21.405011] #0: (name){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b [ 21.405011] #1: ((&(&local->scan_work)->work)){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b [ 21.405011] #2: (&local->mtx){+.+.+.}, at: [<f84920fb>] ieee80211_scan_work+0x32/0x4a4 [mac80211] [ 21.405011] [ 21.405011] stack backtrace: [ 21.405011] Pid: 982, comm: kworker/u:4 Not tainted 2.6.37-rc7-wl+ #242 [ 21.405011] Call Trace: [ 21.405011] [<c12c6e68>] ? printk+0x1d/0x25 [ 21.405011] [<c105a742>] print_usage_bug+0x181/0x18b [ 21.405011] [<c105b196>] ? check_usage_forwards+0x0/0xb6 [ 21.405011] [<c105a9ec>] mark_lock+0x2a0/0x4aa [ 21.405011] [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd [ 21.405011] [<c105ca68>] __lock_acquire+0x5ba/0x13c1 [ 21.405011] [<c1059eed>] ? trace_hardirqs_off_caller+0x18/0x8d [ 21.405011] [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd [ 21.405011] [<c1050411>] ? local_clock+0x2c/0x4f [ 21.405011] [<c1059e00>] ? save_trace+0x2/0xa0 [ 21.405011] [<c105ac39>] ? mark_held_locks+0x43/0x5b [ 21.405011] [<c12ca252>] ? _raw_spin_unlock_irqrestore+0x3b/0x5e [ 21.405011] [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k] [ 21.405011] [<c105d944>] lock_acquire+0xd5/0xf1 [ 21.405011] [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k] [ 21.405011] [<c12c9b1a>] _raw_spin_lock_bh+0x4a/0x77 [ 21.405011] [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k] [ 21.405011] [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k] [ 21.405011] [<c105ac39>] ? mark_held_locks+0x43/0x5b [ 21.405011] [<f8113496>] ath5k_tasklet_ani+0x1d/0x27 [ath5k] [ 21.405011] [<c1037304>] tasklet_action+0x96/0x137 [ 21.405011] [<c10379b5>] __do_softirq+0xde/0x1c3 [ 21.405011] [<c10b0cef>] ? arch_get_unmapped_area_topdown+0x3b/0x127 [ 21.405011] [<c10378d7>] ? __do_softirq+0x0/0x1c3 [ 21.405011] <IRQ> [<c1036dee>] ? irq_exit+0x3d/0x49 [ 21.405011] [<c1003b4f>] ? do_IRQ+0x98/0xac [ 21.405011] [<c1002eee>] ? common_interrupt+0x2e/0x34 [ 21.405011] [<c103007b>] ? sys_unshare+0x57/0x226 [ 21.405011] [<c1047fee>] ? queue_delayed_work+0x1/0x27 [ 21.405011] [<f84a83a0>] ? ieee80211_queue_delayed_work+0x2e/0x33 [mac80211] [ 21.405011] [<f8492528>] ? ieee80211_scan_work+0x45f/0x4a4 [mac80211] [ 21.405011] [<c104620e>] ? process_one_work+0x26e/0x41b [ 21.405011] [<c1046158>] ? process_one_work+0x1b8/0x41b [ 21.405011] [<f84920c9>] ? ieee80211_scan_work+0x0/0x4a4 [mac80211] [ 21.405011] [<c10466b6>] ? worker_thread+0x18a/0x2a5 [ 21.405011] [<c12ca25e>] ? _raw_spin_unlock_irqrestore+0x47/0x5e [ 21.405011] [<c104652c>] ? worker_thread+0x0/0x2a5 [ 21.405011] [<c104abe7>] ? kthread+0x67/0x6c [ 21.405011] [<c104ab80>] ? kthread+0x0/0x6c [ 21.405011] [<c1002efa>] ? kernel_thread_helper+0x6/0x10 Signed-off-by:
Bob Copeland <me@bobcopeland.com> Acked-by:
Bruno Randolf <br1@einfach.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Brian Prodoehl authored
For the AR9002, the spur frequency read from the EEPROM is mangled before being compared against AR_NO_SPUR. This results in the driver trying to set up the spur mitigation for bogus spurs, rather than cleanly breaking out. Signed-off-by:
Brian Prodoehl <bprodoehl@nomadio.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Akinobu Mita authored
Simplify write file operation for /proc files by using simple_write_to_buffer(). Signed-off-by:
Akinobu Mita <akinobu.mita@gmail.com> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Senthil Balasubramanian authored
Disabling BH is not required while running from a tasklet context and so replace spin_lock_bh with just spin_lock. Signed-off-by:
Senthil Balasubramanian <senthilkumar@atheros.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Stanislaw Gruszka authored
Looks that we do not set correctly antennas when scanning on 5Ghz band and when bluetooth is enabled, because priv->cfg->scan_tx_antennas[band] is only defined for IEEE80211_BAND_2GHZ. To fix we check band before limiting antennas to first one. This allow to remove hard coded cfg->scan_tx_antennas[band]. Signed-off-by:
Stanislaw Gruszka <sgruszka@redhat.com> Acked-by:
Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
Move mac80211 functions into new file mac80211-ops.c to have a better separation and to make base.c smaller. Signed-off-by:
Bruno Randolf <br1@einfach.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- Dec 26, 2010
-
-
Wey-Yi Guy authored
The correct name should be used for the newer devices, remove reference to Gen2 Signed-off-by:
Wey-Yi Guy <wey-yi.w.guy@intel.com>
-
Johannes Berg authored
# iw wlan0 interface add moni0 type monitor flags control # ip link set moni0 up causes a continuous spew of FH_ERROR from the device. Fix this by not setting the CTL2HOST filter by itself -- CTL + promisc works fine. Signed-off-by:
Johannes Berg <johannes.berg@intel.com> Signed-off-by:
Wey-Yi Guy <wey-yi.w.guy@intel.com>
-
Wey-Yi Guy authored
For "led_mode" module parameters, string "led_mode" is duplicated twice, remove one. Signed-off-by:
Wey-Yi Guy <wey-yi.w.guy@intel.com>
-
- Dec 22, 2010
-
-
Chaoming Li authored
An RX buffer is set to 9100 bytes to receive 8K AMSDU; however, an skb of this size fails in the kernel. Signed-off-by:
Chaoming Li <chaoming_li@realsil.com.cn> Signed-off-by:
Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Mohammed Shafi Shajakhan authored
It looks like some hardware registers are left into undefined state after suspend/resume. At minimum, this can cause odd issues related to key cache and hardware trying to encrypt/decrypt frames unexpectedly. This seems to happen even when there is no keys configured, i.e., hardware can end up touching TX frames just based of invalid key cache context even if the driver is not asking a specific entry to be used. In addition, RX can likely be affected. This patch fixes this issue. Signed-off-by:
Jouni Malinen <Jouni.Malinen@Atheros.com> Signed-off-by:
Mohammed Shafi Shajakhan <mshajakhan@atheros.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Larry Finger authored
If the radio enable switch is off when the driver is loaded, it is not possible to get radio output until the driver is unloaded and reloaded with the switch on. Signed-off-by:
Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Device poller already reads current RSSI, so add support for set_cqm_rssi_config there. Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Radio should be off when interface is down. Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
rndis_set_default_key did call add_wep_key to set default key on device, even if key is WPA. This caused rndis_wlan not work with wpa_supplicant in nl80211 mode (causing disconnect from AP). Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Jussi Kivilinna authored
Sometimes device returns wrong number of items in bssid-list. Appears that some specific beacons trigger this problem and leads to very poor scanning results. Workaround by ignoring num_items received from device and walkthrough full bssid-list buffer. v2: Fix buffer range checks and reading next item length. Old code read behind buffer on last item but didn't use those values as 'count' would also reach zero. Also fix resizing of buffer if device has larger buffer, old code assumed that BSSID-list OID would return same buffer size when it really can return yet another new larger length. Tested-by:
Luís Picciochi <Pitxyoki@gmail.com> Signed-off-by:
Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Vasanthakumar Thiagarajan authored
The size of the eeprom data is 1088 bytes for AR9485. But a sanity check is done against 4K which would result in a 'potential read past the end of the buffer' smatch complaint. Reported-by:
Dan Carpenter <error27@gmail.com> Signed-off-by:
Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
Introduce a helper function to get the EEPROM mode from channel and remove multiple similar switch statements. Also since it's now easy to get the EEPROM mode from the channel, use them inside the functions which need it, instead of passing a redundant ee_mode parameter. Signed-off-by:
Bruno Randolf <br1@einfach.org> Acked-by:
Nick Kossifidis <mickflemm@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
Remove redundant defines. Signed-off-by:
Bruno Randolf <br1@einfach.org> Acked-by:
Nick Kossifidis <mickflemm@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
Add a new variable to keep track of the currently configured tx power. Before max_pwr was re-used for keeping the maximum allowed power as well as the current configuration. Doing a min() on it allows you to lower the txpower, but how would you be able to make it higher again? This patch fixes that by adding a new variable ah_cur_pwr which is used instead of txp_max_pwr to keep the current configuration. txp_max_pwr is used to check if we are within the limits. Another problem fixed by this patch is that it avoids setting a zero txpower when things are initialized first and the current power is not yet set. Signed-off-by:
Bruno Randolf <br1@einfach.org> Acked-by:
Nick Kossifidis <mickflemm@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
And rename functions which write the powertable to make it clearer. Signed-off-by:
Bruno Randolf <br1@einfach.org> Acked-by:
Nick Kossifidis <mickflemm@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Bruno Randolf authored
Let ath5k_hw_txpower() decide if it can re-use the powertable or if it has to be recalculated instead of passing a 'fast' flag from the outside. Signed-off-by:
Bruno Randolf <br1@einfach.org> Acked-by:
Nick Kossifidis <mickflemm@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Dan Carpenter authored
There is a missing unlock when we hit the "No beacon slot available" error condition. Signed-off-by:
Dan Carpenter <error27@gmail.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Hauke Mehrtens authored
Use function pci_pcie_cap() instead of accessing struct member directly. Signed-off-by:
Hauke Mehrtens <hauke@hauke-m.de> Tested-by:
Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-