aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rtlwifi
AgeCommit message (Collapse)AuthorFilesLines
2012-04-11rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routineLarry Finger2-19/+21
The current version of rtlwifi for USB operations uses kmalloc to acquire a 32-bit buffer for each read of the device. When _usb_read_sync() is called with the rcu_lock held, the result is a "sleeping function called from invalid context" BUG. This is reported for two cases in https://bugzilla.kernel.org/show_bug.cgi?id=42775. The first case has the lock originating from within rtlwifi and could be fixed by rearranging the locking; however, the second originates from within mac80211. The kmalloc() call is removed from _usb_read_sync() by creating a ring buffer pointer in the private area and allocating the buffer data in the probe routine. Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> [This version good for 3.3+ - different patch for 3.2 - 2.6.39] Signed-off-by: John W. Linville <[email protected]>
2012-04-10mac80211: remove channel type argument from rate_updateJohannes Berg1-2/+1
The channel type argument to the rate_update() callback isn't really the correct way to give the rate control algorithm about the desired RX bandwidth of the peer. Remove this argument, and instead update the STA capabilities with 20/40 appropriately. The SMPS update done by this callback works in the same way, so this makes the callback cleaner. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-04-10rtlwifi: Add missing DMA buffer unmapping for PCI driversLarry Finger1-1/+6
In https://bugzilla.kernel.org/show_bug.cgi?id=42976, a system with driver rtl8192se used as an AP suffers from "Out of SW-IOMMU space" errors. These are caused by the DMA buffers used for beacons never being unmapped. This bug was also reported at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/961618 Reported-and-Tested-by: Da Xue <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-04-09rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routineLarry Finger2-19/+21
The current version of rtlwifi for USB operations uses kmalloc to acquire a 32-bit buffer for each read of the device. When _usb_read_sync() is called with the rcu_lock held, the result is a "sleeping function called from invalid context" BUG. This is reported for two cases in https://bugzilla.kernel.org/show_bug.cgi?id=42775. The first case has the lock originating from within rtlwifi and could be fixed by rearranging the locking; however, the second originates from within mac80211. The kmalloc() call is removed from _usb_read_sync() by creating a ring buffer pointer in the private area and allocating the buffer data in the probe routine. Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> [This version good for 3.3+ - different patch for 3.2 - 2.6.39] Signed-off-by: John W. Linville <[email protected]>
2012-04-09rtlwifi: Simplify rtl_get/set inline functionsJoe Perches1-13/+11
Use a temporary to make the code a bit neater. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-04-09rtlwifi: Use is_zero_ether_addr, remove line continuationJoe Perches1-3/+2
Use the normal kernel facilities and use %pM to print the all zero mac address. Remove unnecessary line continuation. Signed-off-by: Joe Perches <[email protected]> Acked-by: [email protected] Signed-off-by: John W. Linville <[email protected]>
2012-04-09rtlwifi: Fix oops on rate-control failureLarry Finger1-1/+4
When the rate-control indexing is incorrectly set up, mac80211 issues a warning and returns NULL from the call to ieee80211_get_tx_rate(). When this happens, avoid a NULL pointer dereference. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-04-09rtlwifi: rtl8192de: Fix firmware initializationLarry Finger1-6/+0
Before the switch to asynchronous firmware loading (mainline commit b0302ab), it was necessary to load firmware when initializing the first of the units in a dual-mac system. After the change, it is necessary to load firmware in both units. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-26rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when scanningLarry Finger2-2/+2
In https://bugzilla.redhat.com/show_bug.cgi?id=770207, slowdowns of driver rtl8192ce are reported. One fix (commit a9b89e2) has already been applied, and it helped, but the maximum RX speed would still drop to 1 Mbps. As in the previous fix, the initial gain was determined to be the problem; however, the problem arises from a setting of the gain when scans are started. Driver rtl8192de also has the same code structure - this one is fixed as well. Reported-and-Tested-by: Ivan Pesin <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-19rtlwifi: Remove unused ETH_ADDR_LEN definesJoe Perches2-2/+0
Just neatening. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-03-09Merge branch 'master' of ↵John W. Linville2-9/+24
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
2012-03-06rtlwifi: rtl8192ce: Fix loss of receive performanceJingjun Wu1-0/+4
Driver rtl8192ce when used with the RTL8188CE device would start at about 20 Mbps on a 54 Mbps connection, but quickly drop to 1 Mbps. One of the symptoms is that the AP would need to retransmit each packet 4 of 5 times before the driver would acknowledge it. Recovery is possible only by unloading and reloading the driver. This problem was reported at https://bugzilla.redhat.com/show_bug.cgi?id=770207. The problem is due to a missing update of the gain setting. Signed-off-by: Jingjun Wu <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-05rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cuLarry Finger1-3/+8
When driver rtl8192cu is used with the debug level set to 3 or greater, the result is "sleeping function called from invalid context" due to an rcu_read_lock() call in the DM refresh routine in driver rtl8192c. This lock is not necessary as the USB driver does not use the struct being protected, thus the lock is set only when a PCI interface is active. This bug is reported in https://bugzilla.kernel.org/show_bug.cgi?id=42775. Reported-by: Ronald Wahl <[email protected]> Tested-by: Ronald Wahl <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Cc: Ronald Wahl <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-05rtlwifi: Remove extraneous value returnLarry Finger1-3/+2
In usb.c, routine _rtl_usb_init_sw() always returns 0, and rtl_usb_probe() never checks the returned value. Thus we can change _rtl_usb_init_sw() to a void routine. In addition, remove the underscore at the beginning of the name of the routine. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-05rtlwifi: Detect misread of end-point countLarry Finger1-3/+10
In the unlikely event of a misread of the USB end point count, the driver generates a divide fault. To prevent this, add a check of the value returned by _rtl_usb_init(). In addition, add some logging to indicate why the condition occurred. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-03-05Merge branch 'master' of ↵John W. Linville7-284/+113
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
2012-02-27rtlwifi: Fix breakage in debug functions when built as a moduleLarry Finger1-1/+1
Since commit 481b9606, it has not been possible to invoke debugging with any rtlwifi driver built as a module. Reported-by: Johannes Berg <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Joe Perches <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-22rtlwifi: rtl8192se firmware load can overflow target bufferTim Gardner2-2/+4
Define RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE which represents the maximimum possible firmware file size. Use it in the definition of the buffer which receives the firmware file data. Set RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE closer to the actual size of the firmware file, e.g., 90000 (down from hard coded 164000). The current size of rtlwifi/rtl8192sefw.bin is 88856. Set max_fw_size to RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE for the size limit check. Fix the error case where max_fw_size is not cleared if the size limit check fails. Cc: Chaoming Li <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Tim Gardner <[email protected]> Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-22Correcting typos in rtlwifi/base.cTristan Pourcelot1-3/+3
This patch correct some typos in a comment. Signed-off-by: Tristan Pourcelot <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-22rtlwifi: rtl8192c-common: rtl8192se: rtl8192de: Simplify if statementsLarry Finger3-277/+104
Devendra Naga <[email protected]> submitted a patch for rtl8192c_common to change the tests in _rtl92c_store_pwrIndex_diffrate_offset(). This patch improves on those changes and applies similar modifications to drivers rtl8192se and rtl8192de. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-22rtlwifi/rtl8192c: in _rtl92c_phy_calculate_bit_shift remove comparing ↵Devendra.Naga1-1/+1
bitmask against 1 in _rtl92c_phy_calculate_bit_shift everytime the right shifted bitmask is AND with 1 and compared against 1. i.e. if ((bitmask >> i) & 0x1 == 1) break; which in the if condition is anyway becomes a 1 or 0. Signed-off-by: Devendra.Naga <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-21Merge branch 'master' of ↵John W. Linville3-20/+25
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
2012-02-19Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller1-2/+2
Conflicts: drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c Small minor conflict in bnx2x, wherein one commit changed how statistics were stored in software, and another commit fixed endianness bugs wrt. reading the values provided by the chip in memory. Signed-off-by: David S. Miller <[email protected]>
2012-02-13drivers/net: Remove boolean comparisons to true/falseJoe Perches17-49/+42
Booleans should not be compared to true or false but be directly tested or tested with !. Done via cocci script: @@ bool t; @@ - t == true + t @@ bool t; @@ - t != true + !t @@ bool t; @@ - t == false + !t @@ bool t; @@ - t != false + t Signed-off-by: Joe Perches <[email protected]> Reviewed-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-09rtlwifi: Modify rtl_pci_init to return 0 on successSimon Graham1-2/+2
Fixes problem where caller would think routine succeeded when it failed leading to divide by zero panic. Signed-off-by: Simon Graham <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-09rtlwifi: Modify rtl_pci_init to return 0 on successJohn W. Linville1-3/+3
Fixes problem where caller would think routine succeeded when it failed leading to divide by zero panic. (This also reverts an earlier attempt, commit 42bc0c97 "rtlwifi: Return correct failure code on error". -- JWL) Signed-off-by: Simon Graham <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-08rtlwifi: Return correct failure code on errorSimon Graham1-1/+1
Callers of rtl_pci_init expect zero to be returned on error. Returning the error code leads to, amongst other things, divide by zero panics attempting to use the ring size that is set to zero. Signed-off-by: Simon Graham <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-08rtlwifi: Handle previous allocation failures when freeing device memorySimon Graham1-6/+10
Handle previous allocation failures when freeing device memory Signed-off-by: Simon Graham <[email protected]> Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-06rtlwifi: Fix PCI probe error path orphaned memoryTim Gardner1-7/+12
Memory allocated by ieee80211_alloc_hw() will get orphaned if any subsequent initializations fail. Also don't pci_set_drvdata(pdev, NULL) until just before disabling the PCI device. Functions called by rtl_deinit_core(hw) may eventually need the context (when its actually implemented). Cc: Larry Finger <[email protected]> Cc: Chaoming Li <[email protected]> Cc: John W. Linville <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Tim Gardner <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-06rtlwifi: Remove extra debugging message accidentally left inLarry Finger1-3/+1
In commit b0302aba812bcc39291cdab9ad7e37008f352a91, an extra debugging message that is spamming the logs was not deleted before submission. Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-06rtlwifi: Fix typo in dm.cMasanari Iida1-1/+1
Correct a spelling "disconnet" to "disconnect" in drivers/net/wireless/rtlwifi/rtl8192de/dm.c Signed-off-by: Masanari Iida <[email protected]> Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-06rtlwifi: remove return in _rtl_pci_switch_clk_reqDevendra.Naga1-3/+1
the return value from _rtl_pci_switch_clk_req is not used by any of its callers. Signed-off-by: Devendra.Naga <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-06Merge branch 'master' of ↵John W. Linville107-2789/+2465
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem Conflicts: drivers/net/wireless/rtlwifi/rtl8192se/sw.c
2012-01-31drivers/net: Remove unnecessary k.alloc/v.alloc OOM messagesJoe Perches1-4/+1
alloc failures use dump_stack so emitting an additional out-of-memory message is an unnecessary duplication. Remove the allocation failure messages. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-01-30rtlwifi: Convert to asynchronous firmware loadLarry Finger20-164/+194
This patch addresses a kernel bugzilla report and two recent mail threads. The kernel bugzilla report is https://bugzilla.kernel.org/show_bug.cgi?id=42632, which reports a udev timeout on boot. The first mail thread, which was on LKML (http://lkml.indiana.edu/hypermail/ linux/kernel/1112.3/00965.html) was for a WARNING that occurs after a suspend/resume cycle for rtl8192cu. The scond mail thread (http://marc.info/?l=linux-wireless&m=132655490826766&w=2) concerned changes in udev that break drivers that delay while firmware is loaded on modprobe. This patch converts all rtlwifi-based drivers to use the asynchronous firmware loading mechanism. Drivers rtl8192ce, rtl8192cu and rtl8192de share a common callback routine. Driver rtl8192se needs different handling of the firmware, thus it has its own code. Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-30rtlwifi: Move pr_fmt macros to a single locationLarry Finger19-47/+21
Although the rtlwifi family of devices contains 11 copies of the pr_fmt macro, the macro is not defined for all routines that need it. By moving the macro to wifi.h, a single copy is available for all routines. Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-27mac80211: make beacon filtering per virtual interfaceJohannes Berg2-1/+2
Due to firmware limitations, we may not be able to support beacon filtering on all virtual interfaces. To allow this in mac80211, introduce per-interface driver capability flags that the driver sets when an interface is added. Signed-off-by: Johannes Berg <[email protected]> Acked-by: Luciano Coelho <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192se: Update copyright datesLarry Finger20-20/+20
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192de: Update copyright datesLarry Finger20-20/+20
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192cu: Update copyright datesLarry Finger20-20/+20
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192ce: Update copyright datesLarry Finger18-18/+18
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192c_common: Update copyright datesLarry Finger7-7/+7
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: Update copyright datesLarry Finger21-21/+21
Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtl8192cu: Remove dead code never selectedLarry Finger1-170/+0
The original driver contained some conditional code that was not selected, but was not deleted in case it would be used later. That code can now be removed. Reported-by: Joe Perches <[email protected]> Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: rtl8192c_common: rtl8192de: Check for allocation failuresLarry Finger4-10/+20
In https://bugzilla.redhat.com/show_bug.cgi?id=771656, a kernel bug was triggered due to a failed skb allocation that was not checked. This event lead to an audit of all memory allocations in the complete rtlwifi family of drivers. This patch fixes the rest. Signed-off-by: Larry Finger <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: Simplify chip version id loggingJoe Perches2-38/+27
Reduce object size a few KB too. $ size drivers/net/wireless/rtlwifi/built-in.o* text data bss dec hex filename 584493 55333 126800 766626 bb2a2 drivers/net/wireless/rtlwifi/built-in.o.new 586904 55333 127216 769453 bbdad drivers/net/wireless/rtlwifi/built-in.o.old Signed-off-by: Joe Perches <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: Remove incorrect logging message prefixesJoe Perches3-5/+5
pr_fmt() adds them. These are unnecessary and wrong. Signed-off-by: Joe Perches <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: add CONFIG_RTLWIFI_DEBUG to remove all of the debug logging codeJoe Perches2-0/+39
It does seem odd though to have a DBG_EMERG and not always emit it. What might also be useful for any embedded use is to add CONFIG_RTLWIFI_DEBUG to conditionally remove all of the debug logging code to reduce the largish object size. This reduces the object size by about 1/3 (250KB) when CONFIG_RTLWIFI_DEBUG is not set. $ size drivers/net/wireless/rtlwifi/built-in.o* text data bss dec hex filename 368722 55333 94224 518279 7e887 drivers/net/wireless/rtlwifi/built-in.o.new 586904 55333 127216 769453 bbdad drivers/net/wireless/rtlwifi/built-in.o.old Signed-off-by: Joe Perches <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: Optimize RT_TRACE macro use of KBUILD_MODNAME for sizeJoe Perches1-3/+3
Moving the KBUILD_MODNAME to the format reduces the overall object size a small amount. $ size drivers/net/wireless/rtlwifi/built-in.o* text data bss dec hex filename 586904 55333 127216 769453 bbdad drivers/net/wireless/rtlwifi/built-in.o.new 588901 55333 127216 771450 bc57a drivers/net/wireless/rtlwifi/built-in.o.old Signed-off-by: Joe Perches <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-01-24rtlwifi: Remove duplicate __func__Joe Perches1-1/+1
The RT_TRACE macro already prepends it. Signed-off-by: Joe Perches <[email protected]> Acked-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>