John W. Linville [Wed, 5 Jan 2011 19:35:41 +0000 (14:35 -0500)]
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless-2.6
roel kluin [Mon, 3 Jan 2011 20:03:44 +0000 (12:03 -0800)]
libertas: down_interruptible() can return -EINTR, not EINTR
Fix test in lbs_spi_thread(). down_interruptible() can return -EINTR, but
not EINTR.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Cc: Dan Williams <dcbw@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Johannes Berg [Mon, 3 Jan 2011 18:51:09 +0000 (19:51 +0100)]
mac80211: fix some key comments and code
The key documentation is slightly out of date, fix
that. Also, the list entry in the key struct is no
longer used that way, so list_del_init() isn't
necessary any more there.
Finally, ieee80211_key_link() is no longer invoked
under RCU read lock, but rather with an appropriate
station lock held.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Mon, 3 Jan 2011 15:52:18 +0000 (21:22 +0530)]
ath9k_htc: Fix packet injection
To inject a packet in monitor mode, a dummy station has
to be associated with the monitor interface in the target.
Failing to do this would result in a firmware crash on the device.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Dan Carpenter [Mon, 3 Jan 2011 05:46:29 +0000 (08:46 +0300)]
ath5k: ath5k_eeprom_mode_from_channel() returns signed
ath5k_eeprom_mode_from_channel() returns -1 on error but we're storing
the result in "ee_mode" which is an unsigned char. This breaks the
error handling. This patch makes "ee_mode" an int.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mohammed Shafi Shajakhan [Fri, 31 Dec 2010 15:19:00 +0000 (20:49 +0530)]
ath9k : few rate control clean ups
Remove some obvious looking dead code and rename few functions
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Christian Lamparter [Thu, 30 Dec 2010 16:29:53 +0000 (17:29 +0100)]
Revert "mac80211: temporarily disable reorder release timer"
This reverts enables the reorder release timer once again.
The issues laid out in:
<http://www.spinics.net/lists/linux-wireless/msg57214.html>
Have been addressed by:
mac80211: serialize rx path workers
mac80211: ignore PSM bit of reordered frames
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Christian Lamparter [Thu, 30 Dec 2010 16:25:29 +0000 (17:25 +0100)]
mac80211: serialize rx path workers
This patch addresses the issue of serialization between
the main rx path and various reorder release timers.
<http://www.spinics.net/lists/linux-wireless/msg57214.html>
It converts the previously local "frames" queue into
a global rx queue [rx_skb_queue]. This way, everyone
(be it the main rx-path or some reorder release timeout)
can add frames to it.
Only one active rx handler worker [ieee80211_rx_handlers]
is needed. All other threads which have lost the race of
"runnning_rx_handler" can now simply "return", knowing that
the thread who had the "edge" will also take care of their
workload.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rajkumar Manoharan [Thu, 30 Dec 2010 13:37:44 +0000 (19:07 +0530)]
ath9k: fix beacon restart on channel change
Restart the beacon timers only if the beacon
was already configured. Otherwise beacons timers
are restarted unnecessarily in unassociated state too.
Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mohammed Shafi Shajakhan [Thu, 30 Dec 2010 06:48:01 +0000 (12:18 +0530)]
Revert "ath9k: Parse DTIM period from mac80211"
This reverts commit
0ce3bcfc84900a64347b0fe1140229bd81314008.
Event though with the above commit we obtain the configured DTIM period
from the AP rather than always hardcoding it to '1', this seems to cause
problems under the following scenarios:
* Preventing association with broken AP's
* Adds latency in roaming
So its better to always use the safe value of '1' for dtim period
Cc: Jouni Malinen <Jouni.Malinen@Atheros.com>
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Bob Copeland [Wed, 29 Dec 2010 22:09:02 +0000 (17:09 -0500)]
cfg80211: fix transposition of words in printk
Fixes the misplaced article in the following:
"cfg80211: Updating information on frequency 5785 MHz for
20 a MHz width channel with regulatory rule:"
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Joel A Fernandes [Wed, 29 Dec 2010 01:28:11 +0000 (19:28 -0600)]
mac80211: Fix mesh portal communication with other mesh nodes.
Fixed a bug where if a mesh interface has a different MAC address from its bridge
interface, then it would not be able to send data traffic to any other mesh node.
This also adds support for communication between mesh nodes and external bridged
nodes by using a 6 address format if the source is a node within the mesh and the
destination is an external node proxied by a mesh portal.
Signed-off-by: Joel A Fernandes <agnel.joel@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau [Tue, 28 Dec 2010 14:46:16 +0000 (15:46 +0100)]
ath9k_hw: fix dma descriptor rx error bit parsing
An Rx DMA descriptor can have multiple error bits set, and some error
bits (e.g. MIC failure) are filtered by the driver based on other criteria.
Remove the 'else' in various error bit checks so that all error information
is properly passed to the driver.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Tue, 28 Dec 2010 08:58:52 +0000 (14:28 +0530)]
ath9k_htc: Move LED/RFKILL code to htc_drv_gpio.c
And add the copyright/license header.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Tue, 28 Dec 2010 08:58:37 +0000 (14:28 +0530)]
ath9k_htc: Fix fast channel change
When returning to the operating channel, a full HW
reset has to be done instead of a fast channel change.
Since sw_scan_complete() is called after the config() call for the
home channel, we end up doing a FCC. Fix this issue by checking
the OFFCHANNEL flag to determine FCC.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Tue, 28 Dec 2010 08:58:27 +0000 (14:28 +0530)]
ath9k_htc: Handle FATAL events
The device has to be reset when a FATAL event is received.
Not doing so would leave the card in a non-working state.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Tue, 28 Dec 2010 08:58:14 +0000 (14:28 +0530)]
ath9k_htc: Move work cancellation outside of mutex
There is no need to lock the various work cancellation
calls. This will be helpful when handling FATAL events.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Tue, 28 Dec 2010 08:58:05 +0000 (14:28 +0530)]
ath9k_htc: Handle pending URBs properly
When doing a channel change, the pending URBs have to be killed
properly on calling htc_stop().
This fixes the probe response timeout seen when sending UDP traffic at
a high rate and running background scan at the same time.
Cc: stable <stable@kernel.org>
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mohammed Shafi Shajakhan [Tue, 28 Dec 2010 07:36:26 +0000 (13:06 +0530)]
ath9k: Few clean ups in beacon config parameters
Some minor clean ups in assigning values to beacon config parameters
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Christian Lamparter [Mon, 27 Dec 2010 22:21:26 +0000 (23:21 +0100)]
mac80211: ignore PSM bit of reordered frames
This patch tackles one of the problems of my
reorder release timer patch from August.
<http://www.spinics.net/lists/linux-wireless/msg57214.html>
=>
What if the reorder release triggers and ap_sta_ps_end
(called by ieee80211_rx_h_sta_process) accidentally clears
the WLAN_STA_PS_STA flag, because 100ms ago - when the STA
was still active - frames were put into the reorder buffer.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Helmut Schaa [Mon, 27 Dec 2010 14:07:35 +0000 (15:07 +0100)]
rt2x00: Fix comment about removed spinlock
The comment doesn't match the code anymore. Fix that.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-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>
Helmut Schaa [Mon, 27 Dec 2010 14:07:16 +0000 (15:07 +0100)]
rt2x00: Remove unused interface spinlock
Since the last user of intf->lock is gone we can safely remove it.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-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>
Helmut Schaa [Mon, 27 Dec 2010 14:06:57 +0000 (15:06 +0100)]
rt2x00: Simplify intf->delayed_flags locking
Instead of protecting delayed_flags with a spinlock use atomic bitops to
make the code more readable.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-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>
Helmut Schaa [Mon, 27 Dec 2010 14:06:36 +0000 (15:06 +0100)]
rt2x00: Remove superfluous assignment of mpdu_density
The tx desciptor already gets initialized to 0. Hence, there's no need
to explicitly assign 0 to mpdu_density here.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Ismael Luceno [Mon, 27 Dec 2010 14:06:17 +0000 (15:06 +0100)]
rt2x00: Fix panic on frame padding for rt2800 usb devices
Backtrace:
rt2800usb_write_tx_data
rt2x00queue_write_tx_frame
rt2x00mac_tx
invoke_tx_handlers
__ieee80211_tx
ieee80211_tx
virt_to_head_page
ieee80211_xmit
ieee80211_tx_skb
ieee80211_scan_work
schedule
ieee80211_scan_work
process_one_work
...
It tried to expand the skb past it's end using skb_put. So I replaced it
with a call to skb_padto, which takes the issue into account.
Signed-off-by: Ismael Luceno <ismael.luceno@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Gertjan van Wingerde [Mon, 27 Dec 2010 14:05:55 +0000 (15:05 +0100)]
rt2x00: Fix pointer errors.
Fix some pointer errors in the various calls to memcpy, memset and memmove.
Although none of these errors are fatal (the expression used now results in
the same pointer value) it is better to use the proper expression.
All errors are having to deal with arrays.
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>
Gertjan van Wingerde [Mon, 27 Dec 2010 14:05:35 +0000 (15:05 +0100)]
rt2x00: remove intf->mac field.
The mac field of the rt2x00_intf structure is written to once and used
twice. In both these uses the mac address is available via other means.
Remove this field as it does not appear to be necessary.
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>
Gertjan van Wingerde [Mon, 27 Dec 2010 14:05:14 +0000 (15:05 +0100)]
rt2x00: Remove intf->bssid field.
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 [Mon, 27 Dec 2010 14:04:54 +0000 (15:04 +0100)]
rt2x00: allow txstatus_fifo w/o txstatus_tasklet
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 [Mon, 27 Dec 2010 14:04:29 +0000 (15:04 +0100)]
rt2x00: simplify txstatus_fifo handling
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 [Sun, 26 Dec 2010 17:22:29 +0000 (18:22 +0100)]
carl9170: fix usb pm suspend->resume woes
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 [Sun, 26 Dec 2010 17:22:16 +0000 (18:22 +0100)]
carl9170: reduce channel change delay
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 [Sun, 26 Dec 2010 17:21:53 +0000 (18:21 +0100)]
carl9170: add missing return-value check
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 [Sun, 26 Dec 2010 17:10:05 +0000 (12:10 -0500)]
ath5k: fix cycle counter inconsistent locking
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 [Sat, 25 Dec 2010 19:34:43 +0000 (14:34 -0500)]
ath9k: fix spur mitigation no-spur case for AR9002
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 [Sat, 25 Dec 2010 06:03:58 +0000 (15:03 +0900)]
airo: use simple_write_to_buffer
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 [Thu, 23 Dec 2010 15:36:57 +0000 (21:06 +0530)]
ath9k: spin_lock_bh is not required within tasklet context.
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 [Thu, 23 Dec 2010 14:12:30 +0000 (15:12 +0100)]
iwlagn: fix scan tx antenna setting on 5Ghz band
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 [Wed, 22 Dec 2010 10:20:32 +0000 (19:20 +0900)]
ath5k: Move mac80211 functions into new file
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>
John W. Linville [Tue, 4 Jan 2011 19:26:34 +0000 (14:26 -0500)]
Merge branch 'wireless-next-2.6' of git://git./linux/kernel/git/iwlwifi/iwlwifi-2.6
John W. Linville [Tue, 4 Jan 2011 19:25:28 +0000 (14:25 -0500)]
Merge branch 'master' of /linux/kernel/git/padovan/bluetooth-next-2.6
Johannes Berg [Mon, 3 Jan 2011 18:42:24 +0000 (19:42 +0100)]
mac80211: add missing synchronize_rcu
commit
ad0e2b5a00dbec303e4682b403bb6703d11dcdb2
Author: Johannes Berg <johannes.berg@intel.com>
Date: Tue Jun 1 10:19:19 2010 +0200
mac80211: simplify key locking
removed the synchronization against RCU and thus
opened a race window where we can use a key for
TX while it is already freed. Put a synchronisation
into the right place to close that window.
Reported-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Cc: stable@kernel.org [2.6.36+]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Milton Miller [Thu, 30 Dec 2010 08:01:03 +0000 (02:01 -0600)]
mac80211: fix mesh forwarding when ratelimited too
Commit
b51aff057c9d0ef6c529dc25fd9f775faf7b6c63 said:
Under memory pressure, the mac80211 mesh code
may helpfully print a message that it failed
to clone a mesh frame and then will proceed
to crash trying to use it anyway. Fix that.
Avoid the reference whenever the frame copy is unsuccessful
regardless of the debug message being suppressed or printed.
Cc: stable@kernel.org [2.6.27+]
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Stanislaw Gruszka [Thu, 23 Dec 2010 11:38:21 +0000 (12:38 +0100)]
iwlagn: enable only rfkill interrupt when device is down
Since commit
6cd0b1cb872b3bf9fc5de4536404206ab74bafdd "iwlagn: fix
hw-rfkill while the interface is down", we enable interrupts when
device is not ready to receive them. However hardware, when it is in
some inconsistent state, can generate other than rfkill interrupts
and crash the system. I can reproduce crash with "kernel BUG at
drivers/net/wireless/iwlwifi/iwl-agn.c:1010!" message, when forcing
firmware restarts.
To fix only enable rfkill interrupt when down device and after probe.
I checked patch on laptop with 5100 device, rfkill change is still
passed to user space when device is down.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: stable@kernel.org
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Wey-Yi Guy [Wed, 15 Dec 2010 16:06:23 +0000 (08:06 -0800)]
iwlwifi: remove reference to Gen2
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 [Wed, 15 Dec 2010 14:07:56 +0000 (06:07 -0800)]
iwlagn: fix FH error
# 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 [Sat, 11 Dec 2010 16:46:56 +0000 (08:46 -0800)]
iwlwifi: remove extra string
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>
Gustavo F. Padovan [Thu, 23 Dec 2010 01:00:34 +0000 (23:00 -0200)]
Bluetooth: Improve handling of HCI control channel in bind
Does not allow any channel different of HCI_CHANNEL_RAW and
HCI_CHANNEL_CONTROL to bind.
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Tue, 21 Dec 2010 21:01:27 +0000 (23:01 +0200)]
Bluetooth: Fix __hci_request synchronization for hci_open_dev
The initialization function used by hci_open_dev (hci_init_req) sends
many different HCI commands. The __hci_request function should only
return when all of these commands have completed (or a timeout occurs).
Several of these commands cause hci_req_complete to be called which
causes __hci_request to return prematurely.
This patch fixes the issue by adding a new hdev->req_last_cmd variable
which is set during the initialization procedure. The hci_req_complete
function will no longer mark the request as complete until the command
matching hdev->req_last_cmd completes.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Mon, 13 Dec 2010 19:07:07 +0000 (21:07 +0200)]
Bluetooth: Add management events for controller addition & removal
This patch adds Bluetooth Management interface events for controller
addition and removal. The events correspond to the existing HCI_DEV_REG
and HCI_DEV_UNREG stack internal events.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Mon, 13 Dec 2010 19:07:06 +0000 (21:07 +0200)]
Bluetooth: Add read_info management command
This patch implements the read_info command which is used to fetch basic
info about an adapter.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Mon, 13 Dec 2010 19:07:05 +0000 (21:07 +0200)]
Bluetooth: Add read_index_list management command
This patch implements the read_index_list command through which
userspace can get a list of current adapter indices.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Mon, 13 Dec 2010 19:07:04 +0000 (21:07 +0200)]
Bluetooth: Add read_version management command
This patch implements the initial read_version command that userspace
will use before any other management interface operations.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg [Mon, 13 Dec 2010 19:07:03 +0000 (21:07 +0200)]
Bluetooth: Add error handling for managment command handlers
The command handlers for bluetooth management messaging should be able
to report errors (such as memory allocation failures) to the higher
levels in the call stack.
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Chaoming Li [Wed, 22 Dec 2010 16:56:02 +0000 (10:56 -0600)]
rtlwifi: Fix large packet issue
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>
Johannes Berg [Wed, 22 Dec 2010 09:15:30 +0000 (10:15 +0100)]
mac80211: cleanup select_queue
There's a redundant rcu_read_lock/unlock pair, a
redundant variable, and a few redundant accesses
to the 1d_to_ac array. Fix this to make the code
neater and easier to follow.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mohammed Shafi Shajakhan [Wed, 22 Dec 2010 06:50:12 +0000 (12:20 +0530)]
ath9k: Reset keycache on resume
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 [Wed, 22 Dec 2010 01:40:40 +0000 (19:40 -0600)]
rtlwifi: rtl8192ce: Fix driver problem when radio switch off at module load
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 [Tue, 21 Dec 2010 20:44:49 +0000 (22:44 +0200)]
rndis_wlan: add support for set_power_mgmt
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jussi Kivilinna [Tue, 21 Dec 2010 20:44:42 +0000 (22:44 +0200)]
rndis_wlan: add support for set_cqm_rssi_config
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 [Tue, 21 Dec 2010 20:44:34 +0000 (22:44 +0200)]
rndis_wlan: remove unused variable from priv structure
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jussi Kivilinna [Tue, 21 Dec 2010 20:44:27 +0000 (22:44 +0200)]
rndis_wlan: constify rndis_config_ops
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jussi Kivilinna [Tue, 21 Dec 2010 20:44:20 +0000 (22:44 +0200)]
rndis_wlan: turn radio off before interface is bring up
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 [Tue, 21 Dec 2010 20:44:12 +0000 (22:44 +0200)]
rndis_wlan: do not set default_key if not WEP key
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 [Tue, 21 Dec 2010 20:44:05 +0000 (22:44 +0200)]
rndis_wlan: scanning, workaround device returning incorrect bssid-list item count.
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 [Tue, 21 Dec 2010 20:29:44 +0000 (21:29 +0100)]
b43: N-PHY: enable support for PHYs rev 3 and higher
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 22:57:48 +0000 (23:57 +0100)]
b43: N-PHY: update 2056 radio on channel switch on rev3+
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 18:40:18 +0000 (19:40 +0100)]
b43: N-PHY: use correct channel tables for rev4+
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 10:50:22 +0000 (11:50 +0100)]
b43: N-PHY: avoid PHY hangs for rev 3 and 4
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 10:50:21 +0000 (11:50 +0100)]
b43: N-PHY: add init tables for 2056 radio
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 16:13:44 +0000 (17:13 +0100)]
b43: N-PHY: implement radio 2056 init steps
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki [Tue, 21 Dec 2010 10:50:19 +0000 (11:50 +0100)]
b43: use correct firmware for newer cores
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Vasanthakumar Thiagarajan [Tue, 21 Dec 2010 09:42:43 +0000 (01:42 -0800)]
ath9k_hw: Fix bug in eeprom data length validation for AR9485
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 [Tue, 21 Dec 2010 08:30:43 +0000 (17:30 +0900)]
ath5k: Use helper function to get eeprom mode from channel
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 [Tue, 21 Dec 2010 08:30:37 +0000 (17:30 +0900)]
ath5k: Remove ATH5K_INI_RFGAIN defines, use band instead
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 [Tue, 21 Dec 2010 08:30:32 +0000 (17:30 +0900)]
ath5k: Track current TX power separately from max TX power
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 [Tue, 21 Dec 2010 08:30:26 +0000 (17:30 +0900)]
ath5k: Separate powertable setup and writing
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 [Tue, 21 Dec 2010 08:30:20 +0000 (17:30 +0900)]
ath5k: Simplify powertable recalculation
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 [Tue, 21 Dec 2010 03:59:06 +0000 (06:59 +0300)]
ath9k: unlock on error path in ath9k_change_interface()
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 [Tue, 21 Dec 2010 01:01:56 +0000 (02:01 +0100)]
rtlwifi: Use pci_pcie_cap()
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>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:55 +0000 (02:01 +0100)]
ath9k: Use pci_is_pcie()
Use function pci_is_pcie() instead of accessing struct member directly.
CC: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:54 +0000 (02:01 +0100)]
ath5k: Use pci_is_pcie()
Use function pci_is_pcie() instead of accessing struct member directly.
CC: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:53 +0000 (02:01 +0100)]
rt2x00: Use pci_is_pcie()
Use function pci_is_pcie() instead of accessing struct member directly.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:52 +0000 (02:01 +0100)]
ssb: Use pci_is_pcie()
Use function pci_is_pcie() instead of accessing struct member directly.
CC: Michael Buesch <mb@bu3sch.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:51 +0000 (02:01 +0100)]
wl12xx: remove unnecessary import
No function declared in gpio.h is used here.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Hauke Mehrtens [Tue, 21 Dec 2010 01:01:50 +0000 (02:01 +0100)]
wl1251: remove unnecessary import
No function declared in gpio.h is used here.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Luis R. Rodriguez [Mon, 20 Dec 2010 16:29:59 +0000 (11:29 -0500)]
ath9k: fix aphy / wiphy idle mismatch
ath9k supports its own set of virtual wiphys, and it uses
the mac80211 idle notifications to know when a device needs
to be idle or not. We recently changed ath9k to force idle
on driver stop() and on resume but forgot to take into account
ath9k's own virtual wiphy idle states. These are used internally
by ath9k to check if the device's radio should be powered down
on each idle call. Without this change its possible that the
device could have been forced off but the virtual wiphy idle
was left on.
Cc: stable@kernel.org
Cc: Paul Stewart <pstew@google.com>
Cc: Amod Bodas <amod.bodas@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rajkumar Manoharan [Mon, 20 Dec 2010 09:09:51 +0000 (14:39 +0530)]
ath9k: Fix warnings on card removal
The recently added warning message on power change failure
is not needed on device removal.
ath: Failed to wakeup in 500us
------------[ cut here ]------------
WARNING: at drivers/net/wireless/ath/ath9k/hw.c:1618
ath9k_hw_setpower+0x61f/0x630 [ath9k_hw]()
Hardware name:
64756D6
Pid: 540, comm: kworker/u:3 Not tainted 2.6.37-rc6-wl #37
Call Trace:
[<
ffffffff810501aa>] warn_slowpath_common+0x7a/0xb0
[<
ffffffffa056e280>] ? ath9k_iowrite32+0x0/0x90 [ath9k]
[<
ffffffff810501f5>] warn_slowpath_null+0x15/0x20
[<
ffffffffa05226ef>] ath9k_hw_setpower+0x61f/0x630 [ath9k_hw]
[<
ffffffffa05700e5>] ath9k_ps_wakeup+0x85/0xd0 [ath9k]
[<
ffffffffa0570685>] ath9k_configure_filter+0x25/0x80 [ath9k]
[<
ffffffffa04dde43>] ieee80211_configure_filter+0x133/0x190 [mac80211]
[<
ffffffffa04ee502>] ieee80211_do_stop+0x132/0x540 [mac80211]
[<
ffffffff813466ff>] ? _raw_spin_unlock_bh+0x1f/0x30
[<
ffffffff812b6923>] ? dev_deactivate+0x1c3/0x1e0
[<
ffffffffa04ee925>] ieee80211_stop+0x15/0x20 [mac80211]
[<
ffffffff8129d1b6>] __dev_close+0x56/0x90
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan [Mon, 20 Dec 2010 02:32:42 +0000 (08:02 +0530)]
ath9k_htc: Fix warning on device removal
The commit "ath9k_hw: warn if we cannot change the power to the chip"
introduced a new warning to indicate chip powerup failures, but this
is not required for devices that have been removed. Handle USB device
removal properly by checking for unplugged status.
For PCI devices, this warning will still be seen when the card is pulled
out, not sure how to check for card removal.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
John W. Linville [Mon, 20 Dec 2010 20:16:53 +0000 (15:16 -0500)]
rtl818x: move rtl8180 and rtl8187 to separate subdirectories
These drivers share one header file, but nothing else. Worse, both
drivers use the rtl8225 part with different register settings. The
results has been some ugly naming -- let's simplify that.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Johannes Berg [Wed, 22 Dec 2010 09:15:07 +0000 (10:15 +0100)]
mac80211: fix mesh forwarding
Under memory pressure, the mac80211 mesh code
may helpfully print a message that it failed
to clone a mesh frame and then will proceed
to crash trying to use it anyway. Fix that.
Cc: stable@kernel.org [2.6.27+]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
John W. Linville [Thu, 16 Dec 2010 19:59:49 +0000 (14:59 -0500)]
rtlwifi: use alloc_workqueue
create_workqueue is deprecated. The workqueue usage does not seem to
demand any special treatment, so do not set any flags either.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Tejun Heo <tj@kernel.org>
Felix Fietkau [Sat, 18 Dec 2010 23:31:55 +0000 (00:31 +0100)]
ath9k: do not limit the chainmask to 1 for legacy mode
Restricting the chainmask to 1 for legacy mode disables useful features
such as MRC, and it reduces the available transmit power.
I can't think of a good reason to do this in legacy mode, so let's just
get rid of that code.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau [Sat, 18 Dec 2010 23:31:54 +0000 (00:31 +0100)]
ath9k_hw: fix PA predistortion HT40 mask
The commit 'ath9k_hw: Disable PAPRD for rates with low Tx power' changed
the code that sets the PAPRD rate masks to use only either the HT20 mask
or the HT40 mask. This is wrong, as the hardware can still use HT20 rates
even when configured for HT40, and the operating channel mode does not
affect PAPRD operation.
The register for the HT40 rate mask is applied as a mask on top of the
other registers to selectively disable PAPRD for specific rates on HT40
packets only.
This patch changes the code back to the old behavior which matches the
intended use of these registers. While with current cards this should not
make any practical difference (according to Atheros, the HT20 and HT40
mask should always be equal), it is more correct that way, and maybe
the HT40 mask will be used for some rare corner cases in the future.
Cc: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau [Sat, 18 Dec 2010 18:30:50 +0000 (19:30 +0100)]
mac80211: fix potentially redundant skb data copying
When an skb is shared, it needs to be duplicated, along with its data buffer.
If the skb does not have enough headroom, using skb_copy might cause the data
buffer to be copied twice (once by skb_copy and once by pskb_expand_head).
Fix this by using skb_clone initially and letting ieee80211_skb_resize sort
out the rest.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau [Sat, 18 Dec 2010 18:30:49 +0000 (19:30 +0100)]
mac80211: skip unnecessary pskb_expand_head calls
If the skb is not cloned and we don't need any extra headroom, there
is no point in reallocating the skb head.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau [Sat, 18 Dec 2010 18:30:48 +0000 (19:30 +0100)]
mac80211: fix initialization of skb->cb in ieee80211_subif_start_xmit
The change 'mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs'
added a check for copying the skb if it's shared, however the tx info variable
still points at the cb of the old skb
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Dan Carpenter [Sat, 18 Dec 2010 08:52:10 +0000 (11:52 +0300)]
wl1251: wl12xx_get_platform_data() returns an ERR_PTR
wl12xx_get_platform_data() returns an ERR_PTR on failure and it never
returns a NULL.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Larry Finger [Sat, 18 Dec 2010 01:36:25 +0000 (19:36 -0600)]
rtlwifi: Fix use of mutex in interrupt code
A previous conversion from semaphoreto mutexes missed the fact that one
of the semaphores was used in interrupt code. Fixed by changing to
a spinlock.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Larry Finger [Fri, 17 Dec 2010 22:04:11 +0000 (16:04 -0600)]
MAINTAINERS: Fix typo in rtl8192ce entry
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>