- 05 1月, 2011 8 次提交
-
-
由 Bob Copeland 提交于
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: NBob Copeland <me@bobcopeland.com> Acked-by: NBruno Randolf <br1@einfach.org> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Brian Prodoehl 提交于
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: NBrian Prodoehl <bprodoehl@nomadio.net> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Akinobu Mita 提交于
Simplify write file operation for /proc files by using simple_write_to_buffer(). Signed-off-by: NAkinobu 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: NJohn W. Linville <linville@tuxdriver.com>
-
由 Senthil Balasubramanian 提交于
Disabling BH is not required while running from a tasklet context and so replace spin_lock_bh with just spin_lock. Signed-off-by: NSenthil Balasubramanian <senthilkumar@atheros.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Stanislaw Gruszka 提交于
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: NStanislaw Gruszka <sgruszka@redhat.com> Acked-by: NWey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Bruno Randolf 提交于
Move mac80211 functions into new file mac80211-ops.c to have a better separation and to make base.c smaller. Signed-off-by: NBruno Randolf <br1@einfach.org> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 John W. Linville 提交于
Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6
-
由 John W. Linville 提交于
-
- 27 12月, 2010 3 次提交
-
-
由 Wey-Yi Guy 提交于
The correct name should be used for the newer devices, remove reference to Gen2 Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
-
由 Johannes Berg 提交于
# 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: NJohannes Berg <johannes.berg@intel.com> Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
-
由 Wey-Yi Guy 提交于
For "led_mode" module parameters, string "led_mode" is duplicated twice, remove one. Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
-
- 23 12月, 2010 29 次提交
-
-
由 Gustavo F. Padovan 提交于
Does not allow any channel different of HCI_CHANNEL_RAW and HCI_CHANNEL_CONTROL to bind. Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
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: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
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: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
This patch implements the read_info command which is used to fetch basic info about an adapter. Signed-off-by: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
This patch implements the read_index_list command through which userspace can get a list of current adapter indices. Signed-off-by: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
This patch implements the initial read_version command that userspace will use before any other management interface operations. Signed-off-by: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Johan Hedberg 提交于
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: NJohan Hedberg <johan.hedberg@nokia.com> Acked-by: NMarcel Holtmann <marcel@holtmann.org> Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
-
由 Chaoming Li 提交于
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: NChaoming Li <chaoming_li@realsil.com.cn> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Johannes Berg 提交于
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: NJohannes Berg <johannes.berg@intel.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Mohammed Shafi Shajakhan 提交于
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: NJouni Malinen <Jouni.Malinen@Atheros.com> Signed-off-by: NMohammed Shafi Shajakhan <mshajakhan@atheros.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Larry Finger 提交于
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: NLarry Finger <Larry.Finger@lwfinger.net> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
Device poller already reads current RSSI, so add support for set_cqm_rssi_config there. Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
Radio should be off when interface is down. Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
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: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Jussi Kivilinna 提交于
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: NLuís Picciochi <Pitxyoki@gmail.com> Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Rafał Miłecki 提交于
Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
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: NDan Carpenter <error27@gmail.com> Signed-off-by: NVasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Bruno Randolf 提交于
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: NBruno Randolf <br1@einfach.org> Acked-by: NNick Kossifidis <mickflemm@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Bruno Randolf 提交于
Remove redundant defines. Signed-off-by: NBruno Randolf <br1@einfach.org> Acked-by: NNick Kossifidis <mickflemm@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Bruno Randolf 提交于
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: NBruno Randolf <br1@einfach.org> Acked-by: NNick Kossifidis <mickflemm@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-