summaryrefslogtreecommitdiffstats
path: root/drivers/net
Commit message (Collapse)AuthorAgeFilesLines
* ath6kl: add prefix parameter to ath6kl_dbg_dump()Kalle Valo2011-09-284-22/+28
| | | | | | | | | | | | | Makes it easier to recognise longs dumps. Obligatory screenshot using "rx" prefix: ath6kl: ath6kl_rx rx 00000000: 10 10 00 00 00 00 08 30 00 00 00 00 00 00 f9 0b .......0........ rx 00000010: 2c 44 08 30 00 00 f9 0b 0c a4 02 00 00 00 73 d2 ,D.0..........s. rx 00000020: 94 00 f9 0b 04 8c 01 00 02 00 07 02 02 00 f9 0b ................ Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: silence "invalid rate" warningKalle Valo2011-09-284-1/+64
| | | | | | | | | | | | | | | | For some reason firmware is sending invalid rates when we try to query current bitrate from ath6kl_get_station() and a warning is issued: [ 3810.415720] ath6kl: invalid rate: 1935633515 [ 3811.105493] ath6kl: invalid rate: 1935633515 [ 3811.556063] ath6kl: invalid rate: 1935633515 As the warning happens way too often, convert the warning to a debug message once we have a proper fix. But to make it easy to follow how often the problem appears, add a debugfs to print various statistics about workarounds and make this issue the first WAR. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: allow firmware to override firmware patch addressKalle Valo2011-09-272-0/+8
| | | | | | | In some firmware versions their patch address has changed. If the firmware provides one, use it to override the default address. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: fix TCP corruptionJouni Malinen2011-09-271-0/+18
| | | | | | | | | | | | | | | Commit 94e532d1a ("ath6kl: Fix system freeze under heavy data load") aligns the skb data without checking if the skb is cloned. Because of this ath6kl can corrupt the local TCP stack information that can result in TCP retransmission failing and TCP connections stalling. To avoid the corruption we need to copy the skb. Now the alignment in ath6kl_htc_tx_buf_align() doesn't corrupt TCP packets anymore (and is not even used for the cloned skb's that got copied since the alignment of the data is handled at the copy time). Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: Remove unnecessary retrieval of first list entry in ↵Vasanthakumar Thiagarajan2011-09-271-1/+0
| | | | | | | | | | | | | ath6kl_htc_tx_setup_scat_list() It is unnecessary to take the first list entry from queue again for transmission. Sometimes it may look racy when the head of the list changes between subsequent retrival, but should not happen in practical. Reported-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: Fix compilation error while compiling w/o debugRajkumar Manoharan2011-09-271-2/+3
| | | | | | | | | | | | | | | | | | drivers/net/wireless/ath/ath6kl/htc_hif.o: In function `ath6kl_debug_fwlog_event': drivers/net/wireless/ath/ath6kl/debug.h:109: multiple definition of `ath6kl_debug_fwlog_event' drivers/net/wireless/ath/ath6kl/debug.o: drivers/net/wireless/ath/ath6kl/debug.h:109: first defined here drivers/net/wireless/ath/ath6kl/htc_hif.o: In function `ath6kl_debug_cleanup': drivers/net/wireless/ath/ath6kl/debug.h:118: multiple definition of `ath6kl_debug_cleanup' drivers/net/wireless/ath/ath6kl/debug.o: drivers/net/wireless/ath/ath6kl/debug.h:118: first defined here Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: Fix disconnect event reportingVasanthakumar Thiagarajan2011-09-231-11/+9
| | | | | | | | | | | | | Driver does not report disconnect event properly when in connecting state, this leads to issues failures in starting reconnection. Send a disconnect command to target when a disconnect event is received with reason code other than 3 (DISCONNECT_CMD - disconnect request from host) to make the frimware stop trying to connect even after giving disconnect event. There will be one more disconnect event for this disconnect command with reason code DISCONNECT_CMD which will be notified to cfg80211. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: pass only unicast frames for aggregationKalle Valo2011-09-231-7/+9
| | | | | | | | | | | | | | | | | | | | When pinging form ar6003 to the AP RTT was high even when power save was disabled: 100 packets transmitted, 97 received, 3% packet loss, time 99125ms rtt min/avg/max/mdev = 1.875/46.733/795.506/139.181 ms After some investigation one reason for this was that received multicast traffic confused the aggrecation logic and caused 400 ms timeouts when receiving multicast frames from AP. A simple way to fix is to pass only unicast frames for aggregation. This improves RTT: 100 packets transmitted, 99 received, 1% packet loss, time 99144ms rtt min/avg/max/mdev = 2.083/13.084/403.390/56.794 ms Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: Report PMKSA candidate events through cfg80211Jouni Malinen2011-09-222-0/+40
| | | | | | | | This allows RSN pre-authentication to be used when roaming decisions are done in the target. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* ath6kl: Indicate the roaming capability of the firmwareVivek Natarajan2011-09-221-0/+2
| | | | | | | | | | | | | | When the rssi of the current AP drops, both wpa_supplicant and the firmware may do a background scan to find a better AP and try to associate. This might lead to a race condition where both may try to connect to some AP based on their scan results. Since the firmware is capable of handling roaming, let wpa_supplicant know about this capability so that it will back off from bgscan based roaming. Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
* Merge remote branch 'wireless-next/master' into ath6kl-nextKalle Valo2011-09-22156-7817/+13443
|\
| * mwifiex: remove unneeded NULL checkDan Carpenter2011-09-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | We dereference "rate" on the lines before so the checks here are too late to help. This function is only called from mwifiex_dump_station_info() and "rate" is always a non-NULL pointer so the check can be removed. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * mwifiex: add a kfree() to an error pathDan Carpenter2011-09-211-0/+1
| | | | | | | | | | | | | | | | | | We're not likely to hit this small memory leak, but lets fix it anyway to keep the static checkers happy. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: remove duplicate list initAmit Beka2011-09-211-2/+0
| | | | | | | | | | | | | | | | | | | | iwl_trans_rx_alloc is only called from iwl_rx_init, so no need to init the lists twice. Signed-off-by: Amit Beka <amit.beka@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: pending frames musn't be incremented if agg is onEmmanuel Grumbach2011-09-212-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | During my works on the transport layer I removed code that updated a local variable (is_agg) that is needed to keep the pending_frames count up to date. Fix this. Also, there should be no way to have a packet with TX_CTL_AMPDU set while the internal aggregation state machine is not in AGG_ON state. Add a WARN_ON to ensure that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: remove uneeded declarationEmmanuel Grumbach2011-09-211-2/+0
| | | | | | | | | | | | | | | | This has been removed but the declaration hasn't. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: simplify the iwl_device_cmd layoutEmmanuel Grumbach2011-09-215-16/+12
| | | | | | | | | | | | | | | | | | | | | | This simplifies both the transport layer and the upper layer. Kill the union in the device command, which avoids the funny syntax we had: cmd->cmd.payload. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: remove the callback in host commandsEmmanuel Grumbach2011-09-2115-134/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, the upper layer could register a callback for each host command. This mechanism allowed the upper layer to have different callbacks for the same command ID. In fact, it wasn't used and the rx_handlers is enough: same callback for all the command with a specific command ID. The iwl_send_add_station needs the access the command that was sent while handling the response (regardless if the command was sent in SYNC or ASYNC mode). So now, all the handlers receive the host command that was sent. This implies a change in the handler signature. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: split remain-on-channelJohannes Berg2011-09-213-49/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we're associated and want to do P2P at the same time, the scan for remain-on-channel is currently limited to 80ms because of the way the device will behave in that case. Instead of doing that, split up the dwell times into little pieces. It will not actually be a single big dwell time then, but will be close enough. This improves robustness of P2P in such scenarios. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: remove common station privJohannes Berg2011-09-215-20/+16
| | | | | | | | | | | | | | | | | | | | Since the driver split there's no more need for shared/non-shared private station data so remove struct iwl_station_priv_common entirely. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlagn: move scan code to scan fileJohannes Berg2011-09-214-440/+433
| | | | | | | | | | | | | | | | | | | | Since the driver split there's no longer a need to have the scan code scattered across multiple files, so move it all back to iwl-scan.c Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * rtlwifi: Combine instances of RTL_HAL_IS_CCK_RATE macros.Larry Finger2011-09-206-20/+8
| | | | | | | | | | | | | | | | | | | | Three drivers, rtl8192ce, rtl8192cu and rtl8192de, use the same macro to check if a particular rate is in the CCK set. This common code is relocated to a common header file. A distinct macro used by rtl8192se with the same name is renamed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * rtlwifi: rtl8192de: Change modinfo messagesLarry Finger2011-09-201-4/+8
| | | | | | | | | | | | | | The various modparam messages are difficult to understand. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * rtlwifi: rtl8192se: Change modinfo messagesLarry Finger2011-09-201-5/+9
| | | | | | | | | | | | | | The various modparam messages are difficult to understand. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * rtlwifi: rtl8192ce: Change modinfo messagesLarry Finger2011-09-201-4/+8
| | | | | | | | | | | | | | The various modparam messages are difficult to understand. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * ath9k: Store noise immunity values across scanningRajkumar Manoharan2011-09-202-2/+9
| | | | | | | | | | | | | | | | | | | | CCK/OFDM noise immunilty values are always reset to defaults during bgscan. This could affect the link quality and performance when the STA is associated in a noisy channel. So do not override the learned values across the scanning. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * Merge branch 'master' of git://git.infradead.org/users/linville/wirelessJohn W. Linville2011-09-2028-169/+200
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/net/wireless/iwlwifi/iwl-pci.c drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c drivers/net/wireless/rt2x00/rt2800usb.c drivers/net/wireless/wl12xx/main.c
| | * b43: Fix beacon problem in ad-hoc modeManual Munz2011-09-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In ad-hoc mode, driver b43 does not issue beacons. Signed-off-by: Manual Munz <freifunk@somakoma.de> Tested-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlagn: workaround bug crashing some APsDon Fry2011-09-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch reverts commit 9b7688328422b88a7a15dc0dc123ad9ab1a6e22d which was introduced in 2.6.38-rc1. It works around a problem where the iwlagn driver stimulates a bug crashing (requiring power cycle to recover) some APs under heavy traffic. CC: stable@kernel.org #2.6.39, #3.0.0 #3.1.0 Signed-off-by: Don Fry <donald.h.fry@intel.com> SIgned-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtl2800usb: Fix incorrect storage of MAC address on big-endian platformsLarry Finger2011-09-161-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The eeprom data is stored in little-endian order in the rt2x00 library. As it was converted to cpu order in the read routines, the data need to be converted to LE on a big-endian platform. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rt2800pci: Fix compiler error on PowerPCLarry Finger2011-09-161-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using gcc 4.4.5 on a Powerbook G4 with a PPC cpu, a complicated if statement results in incorrect flow, whereas the equivalent switch statement works correctly. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: stable <stable@kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ipw2x00: fix rtnl mutex deadlockStanislaw Gruszka2011-09-162-20/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix regression introduced by: commit: ecb4433550f0620f3d1471ae7099037ede30a91e Author: Stanislaw Gruszka <sgruszka@redhat.com> Date: Fri Aug 12 14:00:59 2011 +0200 mac80211: fix suspend/resume races with unregister hw Above commit add rtnl_lock() into wiphy_register(), what cause deadlock when initializing ipw2x00 driver, which itself call wiphy_register() from register_netdev() internal callback with rtnl mutex taken. To fix move wiphy_register() outside register_netdev(). This solution have side effect of not creating /sys/class/net/wlanX/phy80211 link, but that's a minor issue we can live with. Bisected-by: Witold Baryluk <baryluk@smp.if.uj.edu.pl> Bisected-by: Michael Witten <mfwitten@gmail.com> Tested-by: Witold Baryluk <baryluk@smp.if.uj.edu.pl> Tested-by: Michael Witten <mfwitten@gmail.com> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlagn: fix command queue timeoutJohannes Berg2011-09-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the command queue is constantly busy, which can happen in P2P, the hangcheck timer will frequently find a command in it and will eventually reset the device because nothing sets the timestamp for this queue when commands are processed. Fix this by setting the timestamp when a command completes. Cc: stable@kernel.org #2.6.39, #3.0.0 #3.1.0 Signed-off-by: Johannes Berg <johannes.berg@intel.com> SIgned-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlagn: fix stack corruptionJohannes Berg2011-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alexander reported a strange crash in iwlagn that Meenakshi and Wey couldn't reproduce. I just ran into the same issue and tracked it down to stack corruption. This fixes it. The problem was introduced in commit 4b8b99b6e650d0527f3a123744b7459976581d14 Author: Wey-Yi Guy <wey-yi.w.guy@intel.com> Date: Fri Jul 8 14:29:48 2011 -0700 iwlagn: radio sensor offset in le16 format Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com> Cc: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Reported-by: Alexander Diewald <alex@diewald.cc> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k: Fix kernel panic on unplugging the deviceMohammed Shafi Shajakhan2011-09-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when the device is yanked out ath_pci_remove starts doing the cleanups, unregistering the hardware etc. so we should bail out immediately when we get drv_flush callback from mac80211 when the card is being unplugged. the panic occurs after we had associated to an AP. EIP: 0060:[<fb315b00>] EFLAGS: 00010246 CPU: 0 EIP is at ath_reset+0xa0/0x1c0 [ath9k] EAX: 00000000 EBX: 000697c0 ECX: 00000002 EDX: f3c3ccf0 ESI: 00000000 EDI: 00000000 EBP: f43e7b78 ESP: f43e7b50 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process kworker/u:2 (pid: 182, ti=f43e6000 task=f3c3c7c0 task.ti=f43e6000) Stack: 0000002a 00000000 00000000 003e7b78 0000000f eaaa8500 ffffffea eaaa97c0 eaaaa000 00000001 f43e7ba8 fb315d23 f99e7721 ecece680 eaaac738 eaaa8500 eaaaa020 000000c8 000000c8 00000000 eaaa8d58 eaaa8500 f43e7bd0 fb080b29 Call Trace: [<fb315d23>] ath9k_flush+0x103/0x170 [ath9k] [<fb080b29>] __ieee80211_recalc_idle+0x2c9/0x400 [mac80211] [<fb080c8e>] ieee80211_recalc_idle+0x2e/0x60 [mac80211] [<fb07aa73>] ieee80211_mgd_deauth+0x173/0x210 [mac80211] [<fb084559>] ieee80211_deauth+0x19/0x20 [mac80211] [<f99dda53>] __cfg80211_mlme_deauth+0xf3/0x140 [cfg80211] [<c0633d00>] ? __mutex_lock_common+0x1f0/0x380 [<f99e1b5d>] __cfg80211_disconnect+0x18d/0x1f0 [cfg80211] [<f99c8199>] cfg80211_netdev_notifier_call+0x159/0x5c0 [cfg80211] [<c0608a64>] ? packet_notifier+0x174/0x1f0 [<c0639202>] notifier_call_chain+0x82/0xb0 [<c0170d8f>] raw_notifier_call_chain+0x1f/0x30 [<c053b86c>] call_netdevice_notifiers+0x2c/0x60 [<c0182184>] ? trace_hardirqs_on_caller+0xf4/0x180 [<c053b8ec>] __dev_close_many+0x4c/0xd0 [<c053ba2d>] dev_close_many+0x6d/0xc0 [<c053bb53>] rollback_registered_many+0x93/0x1c0 [<c018221b>] ? trace_hardirqs_on+0xb/0x10 [<c053bc95>] unregister_netdevice_many+0x15/0x50 [<fb07f83b>] ieee80211_remove_interfaces+0x7b/0xb0 [mac80211] [<fb06a14b>] ieee80211_unregister_hw+0x4b/0x110 [mac80211] [<fb311a4a>] ath9k_deinit_device+0x3a/0x60 [ath9k] [<fb31eed6>] ath_pci_remove+0x46/0x90 [ath9k] [<c03b4ac4>] pci_device_remove+0x44/0x100 [<c043eb54>] __device_release_driver+0x64/0xb0 [<c043ec67>] device_release_driver+0x27/0x40 [<c043deeb>] bus_remove_device+0x7b/0xa0 [<c043c491>] device_del+0xf1/0x180 [<c043c530>] device_unregister+0x10/0x20 [<c03afafe>] pci_stop_bus_device+0x6e/0x80 [<c03afb72>] pci_remove_bus_device+0x12/0xa0 [<c03c2f29>] pciehp_unconfigure_device+0x89/0x180 [<c0181e54>] ? mark_held_locks+0x64/0x100 [<c063390f>] ? __mutex_unlock_slowpath+0xaf/0x140 [<c03c1f84>] pciehp_disable_slot+0x64/0x1b0 [<c03c2850>] pciehp_power_thread+0xd0/0x100 [<c0164ad0>] ? process_one_work+0x100/0x4d0 [<c0164b4c>] process_one_work+0x17c/0x4d0 [<c0164ad0>] ? process_one_work+0x100/0x4d0 [<c03c2780>] ? queue_interrupt_event+0xa0/0xa0 [<c01662bb>] worker_thread+0x13b/0x320 [<c018221b>] ? trace_hardirqs_on+0xb/0x10 [<c0166180>] ? manage_workers+0x1e0/0x1e0 [<c016a654>] kthread+0x84/0x90 [<c016a5d0>] ? __init_kthread_worker+0x60/0x60 [<c063d106>] kernel_thread_helper+0x6/0x10 Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: Fix problem when switching connectionsGeorge2011-09-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver fails to clear encryption keys making it impossible to switch connections. Signed-off-by: George <george0505@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@kernel.org> [2.6.39+] Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rtlwifi: rtl8192su: Fix problem connecting to HT-enabled APGeorge2011-09-131-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver fails to connect to 802.11n-enabled APs. The patch fixes Bug #42262. Signed-off-by: George <george0505@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@kernel.org> [2.6.39+] Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k_hw: fix calibration on 5 ghzFelix Fietkau2011-08-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ADC calibrations cannot run on 5 GHz with fast clock enabled. They need to be disabled, otherwise they'll hang and IQ mismatch calibration will not be run either. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Reported-by: Adrian Chadd <adrian@freebsd.org> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlegacy: fix BUG_ON(info->control.rates[0].idx < 0)Stanislaw Gruszka2011-08-291-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to connect to 5GHz we can provide negative index to mac80211 what trigger BUG_ON. Reason of iwl-3945-rs malfunction on 5GHz is unknown and needs further investigation. For now, to do not trigger a bug, correct value and just print WARNING. Address bug: https://bugzilla.redhat.com/show_bug.cgi?id=730653 Reported-and-tested-by: Jan Teichmann <jan.teichmann@gmail.com> Cc: stable@kernel.org Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k_hw: Fix init mode register regressionRajkumar Manoharan2011-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 172805ad46b78717a738ca5c7908c68f0326d3a9 overwirtes additional clock settings of AR9330 to all AR9300 chips. Cc: stable@kernel.org Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k: Fix PS wrappers in ath9k_set_coverage_classMohammed Shafi Shajakhan2011-08-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this callback is called during suspend/resume and also via iw command. it configures parameters like sifs, slottime, acktimeout in ath9k_hw_init_global_settings where few REG_READ, REG_RMW are also done and hence the need for PS wrappers Cc: stable@kernel.org Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * carl9170: Fix mismatch in carl9170_op_set_key mutex lock-unlockAlexey Khoroshilov2011-08-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If is_main_vif(ar, vif) reports that we have to fall back to software encryption, we goto err_softw; before locking ar->mutex. As a result, we have unprotected call to carl9170_set_operating_mode and unmatched mutex_unlock. The patch fix the issue by adding mutex_lock before goto. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Cc: <stable@kernel.org> Acked-By: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * wl12xx: add max_sched_scan_ssids value to the hw descriptionLuciano Coelho2011-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After commit 5a865ba, we require a separate value to indicate the number of supported SSIDs in scheduled scans. This patch adds a proper value to the wl12xx driver. This fixes a regression in 3.1-rc3 where scheduled scans were not working properly with the wl12xx driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * wl12xx: Fix validation of pm_runtime_get_sync return valueIdo Yariv2011-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wl1271_sdio_power_on checks if the return value of pm_runtime_get_sync is non-zero, and if so bails out. However, pm_runtime_get_sync can return a positive number which does not suggest an error has occurred. This is problematic for two reasons: 1. The function will needlessly bail out without decrementing back the runtime PM reference counter. 2. wl1271_power_on only checks if wl1271_power_on return value is negative. This means that wl1271_power_on will continue even if wl1271_sdio_power_on bailed out. As a result, sdio transactions will be initiated without properly enabling the sdio function and claiming the host. This could even lead to a kernel panic. Fix this by only checking that the return value of pm_runtime_get_sync is non-negative. Signed-off-by: Ido Yariv <ido@wizery.com> Acked-by: Luciano Coelho <coelho@ti.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * wl12xx: Remove obsolete testmode NVS push commandIdo Yariv2011-08-231-45/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The testmode NVS push command is no longer in use. In addition, it has several implementation issues that prevent it from working correctly: 1. wl1271_tm_cmd_configure relies on wl->chip.id being set. However, since the device was not necessarily booted by the time the function is called, wl->chip.id will be initialized to 0. 2. The NVS file is fetched by calling request_firmware() before it is possible to push an NVS file. 3. The maximum allowed size of nl binary payloads is not sufficient for pushing NVS files. 4. Pushing 128x NVS files will always fail due to a bug in the validation code. 5. In case the pushed NVS file is found invalid, the mutex will be kept locked and the nvs member will become a dangling pointer. Since this feature is not being used, remove it completely instead of fixing it. Signed-off-by: Ido Yariv <ido@wizery.com> Acked-by: Luciano Coelho <coelho@ti.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * ath9k_hw: Fix STA (AR9485) bringup issue due to incorrect MAC addressSenthil Balasubramanian2011-08-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to some recent optimization done in the way the mac address bytes are written into the OTP memory, some AR9485 chipsets were forced to use the first byte from the eeprom template and the remaining bytes are read from OTP. AR9485 happens to use generic eeprom template which has 0x1 as the first byte causes issues in bringing up the card. So fixed the eeprom template accordingly to address the issue. Cc: stable@kernel.org Cc: Paul Stewart <pstew@google.com> Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * rt2x00: do not drop usb dev reference counter on suspendStanislaw Gruszka2011-08-221-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When hibernating ->resume may not be called by usb core, but disconnect and probe instead, so we do not increase the counter after decreasing it in ->supend. As a result we free memory early, and get crash when unplugging usb dongle. BUG: unable to handle kernel paging request at 6b6b6b9f IP: [<c06909b0>] driver_sysfs_remove+0x10/0x30 *pdpt = 0000000034f21001 *pde = 0000000000000000 Pid: 20, comm: khubd Not tainted 3.1.0-rc1-wl+ #20 LENOVO 6369CTO/6369CTO EIP: 0060:[<c06909b0>] EFLAGS: 00010202 CPU: 1 EIP is at driver_sysfs_remove+0x10/0x30 EAX: 6b6b6b6b EBX: f52bba34 ECX: 00000000 EDX: 6b6b6b6b ESI: 6b6b6b6b EDI: c0a0ea20 EBP: f61c9e68 ESP: f61c9e64 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process khubd (pid: 20, ti=f61c8000 task=f6138270 task.ti=f61c8000) Call Trace: [<c06909ef>] __device_release_driver+0x1f/0xa0 [<c0690b20>] device_release_driver+0x20/0x40 [<c068fd64>] bus_remove_device+0x84/0xe0 [<c068e12a>] ? device_remove_attrs+0x2a/0x80 [<c068e267>] device_del+0xe7/0x170 [<c06d93d4>] usb_disconnect+0xd4/0x180 [<c06d9d61>] hub_thread+0x691/0x1600 [<c0473260>] ? wake_up_bit+0x30/0x30 [<c0442a39>] ? complete+0x49/0x60 [<c06d96d0>] ? hub_disconnect+0xd0/0xd0 [<c06d96d0>] ? hub_disconnect+0xd0/0xd0 [<c0472eb4>] kthread+0x74/0x80 [<c0472e40>] ? kthread_worker_fn+0x150/0x150 [<c0809b3e>] kernel_thread_helper+0x6/0x10 Cc: stable@kernel.org Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * iwlagn: sysfs couldn't find the priv pointerEmmanuel Grumbach2011-08-131-22/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug has been introduced by: d593411084a56124aa9d80aafa15db8463b2d8f7 Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Date: Mon Jul 11 10:48:51 2011 +0300 iwlagn: simplify the bus architecture Revert part of the buggy patch: dev_get_drvdata will now return iwl_priv as it did before the patch. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * Revert "iwlagn: sysfs couldn't find the priv pointer"Emmanuel Grumbach2011-08-131-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cc1a93e68f6c0d736b771f0746e8e4186f483fdc. This fix introduced a bug: bad pointer in unload. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| | * drivers/net/wireless/wl12xx: add missing kfreeJulia Lawall2011-08-122-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In each case, the freed data should be freed in the error handling code as well. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @exists@ local idexpression x; statement S,S1; expression E; identifier fl; expression *ptr != NULL; @@ x = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...kfree(x)...+> } when any when != true x == NULL x->fl ...> ( if (x == NULL) S1 | if (...) { ... when != x when forall ( return \(0\|<+...x...+>\|ptr\); | * return ...; ) } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Luciano Coelho <coelho@ti.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
OpenPOWER on IntegriCloud