Generated by using: git log v2.6.30..HEAD \ net/wireless/ \ net/mac80211/ \ net/rfkill/ \ drivers/net/wireless/ \ include/linux/nl80211.h \ include/linux/rfkill.h \ include/net/cfg80211.h \ include/net/regulatory.h \ include/net/cfg80211.h >> $LOG git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-allstable.git commit 1a9937b7f07ab6e35515e32a7625f0ba50ab7670 Author: Herton Ronaldo Krzesinski Date: Thu Aug 20 21:16:17 2009 -0300 rtl8187: always set MSR_LINK_ENEDCA flag with RTL8187B RTL8187B always needs MSR_LINK_ENEDCA flag to be set even when it is in no link mode, otherwise it'll not be able to associate when this flag is not set after the change "mac80211: fix managed mode BSSID handling". By accident, setting BSSID of AP before association makes 8187B to successfuly associate even when ENEDCA flag isn't set, which was the case before the mac80211 change. But now the BSSID of AP we are trying to associate is only available after association is successful, and any attempt to associate without the needed flag doesn't work. Signed-off-by: Herton Ronaldo Krzesinski Tested-by: Larry Finger Acked-by: Hin-Tak Leung Signed-off-by: John W. Linville commit 518ff04fd84290a7ad9042e8a46d78d29cb443d3 Author: John W. Linville Date: Mon Aug 17 12:09:26 2009 -0400 orinoco: correct key bounds check in orinoco_hw_get_tkip_iv If key is 4 that is an array out of bounds. Reported-by: Dan Carpenter Signed-off-by: John W. Linville commit 523d2f6982136d332c9b7dd00e9e16da1091f060 Author: Johannes Berg Date: Wed Jul 1 21:26:43 2009 +0200 mac80211: fix todo lock The key todo lock can be taken from different locks that require it to be _bh to avoid lock inversion due to (soft)irqs. This should fix the two problems reported by Bob and Gabor: http://mid.gmane.org/20090619113049.GB18956@hash.localnet http://mid.gmane.org/4A3FA376.8020307@openwrt.org Signed-off-by: Johannes Berg Cc: Bob Copeland Cc: Gabor Juhos Signed-off-by: John W. Linville commit 6b26dead3ce97d016b57724b01974d5ca5c84bd5 Author: Pavel Roskin Date: Tue Aug 4 17:48:16 2009 -0400 rt2x00: fix memory corruption in rf cache, add a sanity check Change rt2x00_rf_read() and rt2x00_rf_write() to subtract 1 from the rf register number. This is needed because the rf registers are enumerated starting with one. The size of the rf register cache is just enough to hold all registers, so writing to the highest register was corrupting memory. Add a check to make sure that the rf register number is valid. Signed-off-by: Pavel Roskin Cc: stable@kernel.org Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 416fbdff2137e8d8cc8f23f517bee3a26b11526f Author: Luis R. Rodriguez Date: Tue Aug 11 13:10:33 2009 -0700 mac80211: fix panic when splicing unprepared TIDs We splice skbs from the pending queue for a TID onto the local pending queue when tearing down a block ack request. This is not necessary unless we actually have received a request to start a block ack request (rate control, for example). If we never received that request we should not be splicing the tid pending queue as it would be null, causing a panic. Not sure yet how exactly we allowed through a call when the tid state does not have at least HT_ADDBA_REQUESTED_MSK set, that will require some further review as it is not quite obvious. For more information see the bug report: http://bugzilla.kernel.org/show_bug.cgi?id=13922 This fixes this oops: BUG: unable to handle kernel NULL pointer dereference at 00000030 IP: [] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211] *pdpt = 0000000002d1e001 *pde = 0000000000000000 Thread overran stack, or stack corrupted Oops: 0000 [#1] SMP last sysfs file: /sys/module/aes_generic/initstate Modules linked in: Pid: 0, comm: swapper Not tainted (2.6.31-rc5-wl #2) Dell DV051 EIP: 0060:[] EFLAGS: 00010292 CPU: 0 EIP is at ieee80211_agg_splice_packets+0x40/0xc0 [mac80211] EAX: 00000030 EBX: 0000004c ECX: 00000003 EDX: 00000000 ESI: c1c98000 EDI: f745a1c0 EBP: c076be58 ESP: c076be38 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 Process swapper (pid: 0, ti=c076a000 task=c0709160 task.ti=c076a000) Stack: Call Trace: [] ? ieee80211_stop_tx_ba_cb+0xab/0x150 [mac80211] [] ? ieee80211_tasklet_handler+0xce/0x110 [mac80211] [] ? net_rx_action+0xef/0x1d0 [] ? tasklet_action+0x58/0xc0 [] ? __do_softirq+0xc2/0x190 [] ? handle_IRQ_event+0x58/0x140 [] ? ack_apic_level+0x7e/0x270 [] ? do_softirq+0x3d/0x40 [] ? irq_exit+0x65/0x90 [] ? do_IRQ+0x4f/0xc0 [] ? irq_exit+0x7d/0x90 [] ? smp_apic_timer_interrupt+0x57/0x90 [] ? common_interrupt+0x29/0x30 [] ? mwait_idle+0xbe/0x100 [] ? cpu_idle+0x52/0x90 [] ? rest_init+0x55/0x60 [] ? start_kernel+0x315/0x37d [] ? unknown_bootoption+0x0/0x1f9 [] ? i386_start_kernel+0x79/0x81 Code: EIP: [] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211] SS:ESP 0068:c076be38 CR2: 0000000000000030 Cc: stable@kernel.org Testedy-by: Jack Lau Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9799218ae36910af50f002a5db1802d576fffb43 Author: David S. Miller Date: Wed Aug 12 17:37:52 2009 -0700 Revert "libertas: Read buffer overflow" This reverts commit 57921c312e8cef72ba35a4cfe870b376da0b1b87. On request from John Linville: It has been shown to create a new problem. There is work towards a solution to that one, but it isn't a simple clean-up. Signed-off-by: David S. Miller commit e9d126cdfa60b575f1b5b02024c4faee27dccf07 Author: Dan Carpenter Date: Sun Aug 9 14:24:09 2009 +0200 ar9170: fix read & write outside array bounds queue == __AR9170_NUM_TXQ would cause a bug on the next line. found by Smatch ( http://repo.or.cz/w/smatch.git ). Cc: stable@kernel.org Reported-by: Dan Carpenter Signed-off-by: Dan Carpenter Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 363ec5614f86110c6a6bdd72ac2147ebafd3ff5e Author: Christian Lamparter Date: Sat Aug 8 17:09:48 2009 +0200 ar9170usb: fix spurious firmware related message When ar9170-2.fw was missing, the driver erroneously complained about missing the initialization values file ar9170-1.fw... Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit f222e8b40f2177b1c4cac015b117744c1d3fa3e9 Merge: 819ae6a f4b9a98 Author: David S. Miller Date: Sun Aug 9 21:29:47 2009 -0700 Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ commit dd1f57ecaf9688efa69d982652ecfa3e64f1fa55 Author: Bob Dunlop Date: Thu Aug 6 12:01:03 2009 -0400 libertas: correct packing of rxpd structure Older Gcc compilers (3.4.5 tested) need additional hints in order to get the packing of the rxpd structure (which contains a 16 bit union) correct on the ARM processor. struct txpd does not need these hints since it contains a 32 bit union that packs naturally. Signed-off-by: R.J.Dunlop Acked-by: Dan Williams Signed-off-by: John W. Linville commit 60aa569f9212a13382c29cc734f275dec0f55e0b Author: Lennert Buytenhek Date: Mon Aug 3 21:59:09 2009 +0200 mwl8k: prevent module unload hang We need to unregister our ieee80211_hw before resetting the chip, as the former causes firmware commands to be issued which will time out once the chip has been reset. Signed-off-by: Lennert Buytenhek Acked-by: Nicolas Pitre Signed-off-by: John W. Linville commit a94cc97e14c5750ec2b50b2e4ecdfb0f369ed0f4 Author: Lennert Buytenhek Date: Mon Aug 3 21:58:57 2009 +0200 mwl8k: prevent crash in ->configure_filter() if no interface was added Signed-off-by: Lennert Buytenhek Acked-by: Nicolas Pitre Signed-off-by: John W. Linville commit 37055bd455b31b8220c35a1ede9c6aceb791cc88 Author: Lennert Buytenhek Date: Mon Aug 3 21:58:47 2009 +0200 mwl8k: call pci_unmap_single() before accessing command structure again Signed-off-by: Lennert Buytenhek Acked-by: Nicolas Pitre Signed-off-by: John W. Linville commit 4ff6432ea620ba467e50ec04b8271ea0eb94e62e Author: Lennert Buytenhek Date: Mon Aug 3 21:58:39 2009 +0200 mwl8k: add various missing GET_HW_SPEC endian conversions Signed-off-by: Lennert Buytenhek Acked-by: Nicolas Pitre Signed-off-by: John W. Linville commit d25f9f1357139bbdc79bc960ea84909a7c22ec2b Author: Lennert Buytenhek Date: Mon Aug 3 21:58:26 2009 +0200 mwl8k: fix NULL pointer dereference on receive out-of-memory When we go into out-of-memory and fail to allocate skbuffs to refill the receive ring with, rxq_process can end up running into a receive ring entry that is marked as host-owned but doesn't have an associated skbuff. If this happens, we must break out of the rx processing loop instead of trying to process the descriptor. Signed-off-by: Lennert Buytenhek Acked-by: Nicolas Pitre Signed-off-by: John W. Linville commit 7dd2459d8f7a967bcd1466591aec72bb3ddc07cc Author: Zhu Yi Date: Mon Jul 27 10:10:20 2009 +0800 ipw2x00: Write outside array bounds > channel_index loops up to IPW_SCAN_CHANNELS, but is used after being > incremented. This might be able to access 1 past the end of the array Reported-by: Roel Kluin Signed-off-by: John W. Linville commit ae83060026537885fd23737af161fee8afd04f4b Merge: 2edb389 357eb46 Author: Linus Torvalds Date: Tue Aug 4 15:38:34 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits) ehea: Fix napi list corruption on ifconfig down igbvf: Allow VF driver to correctly recognize failure to set mac 3c59x: Fix build failure with gcc 3.2 sky2: Avoid transmits during sky2_down() iwlagn: do not send key clear commands when rfkill enabled libertas: Read buffer overflow drivers/net/wireless: introduce missing kfree drivers/net/wireless/iwlwifi: introduce missing kfree zd1211rw: fix unaligned access in zd_mac_rx cfg80211: fix regression on beacon world roaming feature cfg80211: add two missing NULL pointer checks ixgbe: Patch to modify 82598 PCIe completion timeout values bluetooth: rfcomm_init bug fix mlx4_en: Fix double pci unmapping. mISDN: Fix handling of receive buffer size in L1oIP pcnet32: VLB support fixes pcnet32: remove superfluous NULL pointer check in pcnet32_probe1() net: restore the original spinlock to protect unicast list netxen: fix coherent dma mask setting mISDN: Read buffer overflow ... commit 99f1b01562b7dcae75b043114f76163fbf84fcab Author: Reinette Chatre Date: Mon Aug 3 12:10:16 2009 -0700 iwlagn: do not send key clear commands when rfkill enabled Do all key clearing except sending sommands to device when rfkill enabled. When rfkill enabled the interface is brought down and will be brought back up correctly after rfkill is enabled again. Same change is not needed for iwl3945 as it ignores return code when sending key clearing command to device. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13742 Signed-off-by: Reinette Chatre Tested-by: Frans Pop Signed-off-by: John W. Linville commit b929c633b4067be18a335d278a66fd5deef3cabe Author: Roel Kluin Date: Sun Aug 2 09:44:12 2009 +0200 libertas: Read buffer overflow Check whether index is within bounds before testing the element. Signed-off-by: Roel Kluin Signed-off-by: John W. Linville commit 9f9857bb5e147b977b9878c46e3dd87c9e8caf50 Author: Julia Lawall Date: Sat Aug 1 10:55:53 2009 +0200 drivers/net/wireless: introduce missing kfree Error handling code following a kzalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...x...+> } ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit c37457e69ffd7d3c94cbfcc1c39be9a45dd7ad21 Author: Julia Lawall Date: Mon Aug 3 11:11:45 2009 +0200 drivers/net/wireless/iwlwifi: introduce missing kfree Move orthogonal error handling code up before a kzalloc, so that it doesn't have to free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...x...+> } ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // Signed-off-by: Julia Lawall Acked-by: Zhu Yi Signed-off-by: John W. Linville commit dbc1eec485625228895ded6baf6bd01ce2475410 Author: Patrick Simmons Date: Sun Aug 2 02:46:28 2009 -0600 zd1211rw: fix unaligned access in zd_mac_rx Fix an unaligned memory access in the zd_mac_rx function of zd1211rw that causes problems on SPARC64. Signed-off-by: Patrick Simmons Signed-off-by: John W. Linville commit 371842448c05b42d11a4be1c8e4e81d62ecc7534 Author: Luis R. Rodriguez Date: Thu Jul 30 17:43:48 2009 -0700 cfg80211: fix regression on beacon world roaming feature A regression was added through patch a4ed90d6: "cfg80211: respect API on orig_flags on channel for beacon hint" We did indeed respect _orig flags but the intention was not clearly stated in the commit log. This patch fixes firmware issues picked up by iwlwifi when we lift passive scan of beaconing restrictions on channels its EEPROM has been configured to always enable. By doing so though we also disallowed beacon hints on devices registering their wiphy with custom world regulatory domains enabled, this happens to be currently ath5k, ath9k and ar9170. The passive scan and beacon restrictions on those devices would never be lifted even if we did find a beacon and the hardware did support such enhancements when world roaming. Since Johannes indicates iwlwifi firmware cannot be changed to allow beacon hinting we set up a flag now to specifically allow drivers to disable beacon hints for devices which cannot use them. We enable the flag on iwlwifi to disable beacon hints and by default enable it for all other drivers. It should be noted beacon hints lift passive scan flags and beacon restrictions when we receive a beacon from an AP on any 5 GHz non-DFS channels, and channels 12-14 on the 2.4 GHz band. We don't bother with channels 1-11 as those channels are allowed world wide. This should fix world roaming for ath5k, ath9k and ar9170, thereby improving scan time when we receive the first beacon from any AP, and also enabling beaconing operation (AP/IBSS/Mesh) on cards which would otherwise not be allowed to do so. Drivers not using custom regulatory stuff (wiphy_apply_custom_regulatory()) were not affected by this as the orig_flags for the channels would have been cleared upon wiphy registration. I tested this with a world roaming ath5k card. Cc: Jouni Malinen Signed-off-by: Luis R. Rodriguez Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit cd3468bad96c00b5a512f551674f36776129520e Author: Johannes Berg Date: Wed Jul 29 22:07:44 2009 +0200 cfg80211: add two missing NULL pointer checks These pointers can be NULL, the is_mesh() case isn't ever hit in the current kernel, but cmp_ies() can be hit under certain conditions. Signed-off-by: Johannes Berg Cc: stable@kernel.org [2.6.29, 2.6.30] Signed-off-by: John W. Linville commit 89c3a8aca28e6d57f2ae945d97858a372d624b81 Author: Johannes Berg Date: Tue Jul 28 18:10:17 2009 +0200 mac80211: fix suspend Jan reported that his b43-based laptop hangs during suspend. The problem turned out to be mac80211 asking the driver to stop the hardware before removing interfaces, and interface removal caused b43 to touch the hardware (while down, which causes the hang). This patch fixes mac80211 to do reorder these operations to have them in the correct order -- first remove interfaces and then stop the hardware. Some more code is necessary to be able to do so in a race-free manner, in particular it is necessary to not process frames received during quiescing. Fixes http://bugzilla.kernel.org/show_bug.cgi?id=13337. Reported-by: Jan Scholz Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 57921c312e8cef72ba35a4cfe870b376da0b1b87 Author: Roel Kluin Date: Tue Jul 28 12:05:00 2009 +0200 libertas: Read buffer overflow Several arrays were read before checking whether the index was within bounds. ARRAY_SIZE() should be used to determine the size of arrays. rates->rates has an arraysize of 1, so calling get_common_rates() with a rates_size of MAX_RATES (14) was causing reads out of bounds. tmp_size can increment at most to (ARRAY_SIZE(lbs_bg_rates) - 1) * (*rates_size - 1), so that should be the number of elements of tmp[]. A goto can be eliminated: ret was already set upon its declaration. Signed-off-by: Roel Kluin Signed-off-by: John W. Linville commit 430453fc2a5f3f2c1d98ebc3c3d4c54f3060e3c3 Author: Roel Kluin Date: Tue Jul 28 09:59:47 2009 +0200 libertas: Read outside array bounds reads bss->rates[j] before checking bounds of index, and should use ARRAY_SIZE to determine the size of the array. Signed-off-by: Roel Kluin Acked-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit f1462147f15a954a1a0553390846c6fa3ca742b1 Merge: e00b95d 6d7760a Author: Linus Torvalds Date: Mon Jul 27 13:42:47 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (45 commits) cnic: Fix ISCSI_KEVENT_IF_DOWN message handling. net: irda: init spinlock after memcpy ixgbe: fix for 82599 errata marking UDP checksum errors r8169: WakeOnLan fix for the 8168 netxen: reset ring consumer during cleanup net/bridge: use kobject_put to release kobject in br_add_if error path smc91x.h: add config for Nomadik evaluation kit NET: ROSE: Don't use static buffer. eepro: Read buffer overflow tokenring: Read buffer overflow at1700: Read buffer overflow fealnx: Write outside array bounds ixgbe: remove unnecessary call to device_init_wakeup ixgbe: Don't priority tag control frames in DCB mode ixgbe: Enable FCoE offload when DCB is enabled for 82599 net: Rework mdio-ofgpio driver to use of_mdio infrastructure register at91_ether using platform_driver_probe skge: Enable WoL by default if supported net: KS8851 needs to depend on MII be2net: Bug fix in the non-lro path. Size of received packet was not updated in statistics properly. ... commit 78f1a8b758d57c2d2c9f3db7199cd30803854c82 Author: Luis R. Rodriguez Date: Mon Jul 27 08:38:25 2009 -0700 mac80211: do not queue work after suspend in the dynamic ps timer Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 082e708acc50a5b625b9bde0bb1af90dfdbd1942 Author: Roel Kluin Date: Sat Jul 25 23:34:31 2009 +0200 iwlwifi: Read outside array bounds tid is bounded (above) by the size of default_tid_to_tx_fifo (17 elements), but the size of priv->stations[].tid[] is MAX_TID_COUNT (9) elements. Signed-off-by: Roel Kluin Signed-off-by: John W. Linville commit 008749fc9917b799c469478141ddd1a4c81d06ca Author: Roel Kluin Date: Sat Jul 25 23:21:22 2009 +0200 ath9k: Read outside array bounds Incorrect limits leads to reads outside array bounds. Signed-off-by: Roel Kluin Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3d0ccd021b23c18ea2d399fe4a43c955485c765c Author: Roel Kluin Date: Sat Jul 25 23:02:32 2009 +0200 airo: Buffer overflow SSID_rid has space for only 3 ssids. txPowerLevels[i] is read before the bounds check for i Signed-off-by: Roel Kluin Acked-by: Dan Williams Signed-off-by: John W. Linville commit 2a21f86917f7a9fe13b180e895a816871a234dee Author: Dan Carpenter Date: Sat Jul 25 15:22:59 2009 +0300 wireless: ERR_PTR vs null iwm_wdev_alloc() returns an ERR_PTR on failure and not null. It also prints its own dev_err() message so I removed that as well. Compile tested only. Sorry. Found by smatch (http://repo.or.cz/w/smatch.git). Signed-off-by: Dan Carpenter Acked-by: Zhu Yi Signed-off-by: John W. Linville commit 45f5fa32b130b2a59f9b726be45ce7fa73fb834c Author: reinette chatre Date: Tue Jul 21 09:29:07 2009 -0700 iwlagn: fix minimum number of queues setting We need to provide a reasonable minimum that will result in a working setup if used. Set minimum to be 10 to provide for 4 standard TX queues + 1 command queue + 2 (unused) HCCA queues + 4 HT queues (one per AC). We allow the user to change the number of queues used via a module parameter and use this minimum value to check if it is valid. Without this patch a user can select a value for the number of queues that will result in a failing setup. Signed-off-by: Reinette Chatre Reviewed-by: Tomas Winkler Acked-by: Tomas Winkler Signed-off-by: John W. Linville commit 3995bd9332a51b626237d6671cfeb7235e6c1305 Author: Johannes Berg Date: Fri Jul 24 11:13:14 2009 -0700 iwlwifi: fix TX queue race I had a problem on 4965 hardware (well, probably other hardware too, but others don't survive my stress testing right now, unfortunately) where the driver was sending invalid commands to the device, but no such thing could be seen from the driver's point of view. I could reproduce this fairly easily by sending multiple TCP streams with iperf on different TIDs, though sometimes a single iperf stream was sufficient. It even happened with a single core, but I have forced preemption turned on. The culprit was a queue overrun, where we advanced the queue's write pointer over the read pointer. After careful analysis I've come to the conclusion that the cause is a race condition between iwlwifi and mac80211. mac80211, of course, checks whether the queue is stopped, before transmitting a frame. This effectively looks like this: lock(queues) if (stopped(queue)) { unlock(queues) return busy; } unlock(queues) ... <-- this place will be important there is some more code here drv_tx(frame) The driver, on the other hand, can stop and start queues, which does lock(queues) mark_running/stopped(queue) unlock(queues) [if marked running: wake up tasklet to send pending frames] Now, however, once the driver starts the queue, mac80211 can see that and end up at the marked place above, at which point for some reason the driver seems to stop the queue again (I don't understand that) and then we end up transmitting while the queue is actually full. Now, this shouldn't actually matter much, but for some reason I've seen it happen multiple times in a row and the queue actually overflows, at which point the queue bites itself in the tail and things go completely wrong. This patch fixes this by just dropping the packet should this have happened, and making the lock in iwlwifi cover everything so iwlwifi can't race against itself (dropping the lock there might make it more likely, but it did seem to happen without that too). Since we can't hold the lock across drv_tx() above, I see no way to fix this in mac80211, but I also don't understand why I haven't seen this before -- maybe I just never stress tested it this badly. With this patch, the device has survived many minutes of simultanously sending two iperf streams on different TIDs with combined throughput of about 60 Mbps. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 154839962a582b8eb661cde94ef3af0e03b374d7 Author: Marek Vasut Date: Thu Jul 16 19:19:53 2009 +0200 libertas: Fix problem with broken V4 firmware on CF8381 Firmware V4 on CF8381 reports region code shifted by 1 byte to left. The following patch checks for this and handles it properly. Signed-off-by: Marek Vasut Signed-off-by: John W. Linville commit 5d2214ac5e7f72c9ae70b2444649e8d1d3e1086d Author: Luis R. Rodriguez Date: Mon Jul 20 08:32:47 2009 -0700 ath: add support for special 0x8000 regulatory domain Two users of ar9170 devices have now reported their cards have been programmed with a regulatory domain of 0x8000. This is not a valid regulatory domain as such these users were unable to use these devices. Since this doesn't seem to be a device EEPROM corruption we must treat it specially. It may have been possible the manufacturer intended to use 0x0 as the regulatory domain and that would ultimately yield to US but since we cannot get confirmationf or this we default this special case to one of our world regulatory domains, specifically 0x64. Reported-by: DavidFreeman on #linux-wireless Reported-by: Joerg Albert Cc: Christian Lamparter , Cc: Stephen Chen Cc: David Quan Cc: Tony Yang Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bfa99bfdda1ce8a60f1f0fba7a04162a66d4ecfa Author: Dan Carpenter Date: Sun Jul 19 21:26:13 2009 +0200 p54spi: fix potential null deref in p54spi.c Fix a potential NULL dereference bug during error handling in p54spi_probe. This bug was discovered by smatch: (http://repo.or.cz/w/smatch.git). Signed-off-by: Dan Carpenter Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9e81eccf199d910e5ea8db377a43478e4eccd033 Author: Christian Lamparter Date: Sun Jul 19 05:05:37 2009 +0200 cfg80211: double free in __cfg80211_scan_done This patch fixes a double free corruption in __cfg80211_scan_done: ================================================ BUG kmalloc-512: Object already free ------------------------------------------------ INFO: Allocated in load_elf_binary+0x18b/0x19af age=6 INFO: Freed in load_elf_binary+0x104e/0x19af age=5 INFO: Slab 0xffffea0001bae4c0 objects=14 used=7 INFO: Object 0xffff88007e8a9918 @offset=6424 fp=0xffff88007e8a9488 Bytes b4 0xffff88007e8a9908: 00 00 00 00 00 00 00 00 5a 5a [...] Pid: 28705, comm: rmmod Tainted: P C 2.6.31-rc2-wl #1 Call Trace: [] print_trailer+0x14e/0x16e [] object_err+0x42/0x61 [] __slab_free+0x2af/0x396 [] ? wiphy_unregister+0x92/0x142 [cfg80211] [] kfree+0x13c/0x17a [] ? wiphy_unregister+0x92/0x142 [cfg80211] [] wiphy_unregister+0x92/0x142 [cfg80211] [] ieee80211_unregister_hw+0xc8/0xff [mac80211] [] p54_unregister_common+0x31/0x66 [p54common] [...] FIX kmalloc-512: Object at 0xffff88007e8a9918 not freed The code path which leads to the *funny* double free: request = rdev->scan_req; dev = dev_get_by_index(&init_net, request->ifidx); /* * the driver was unloaded recently and * therefore dev_get_by_index will return NULL! */ if (!dev) goto out; [...] rdev->scan_req = NULL; /* not executed... */ [...] out: kfree(request); Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit e56f0975360369347725c49654ecfe3792710429 Author: Alan Jenkins Date: Sat Jul 18 19:20:20 2009 +0100 rfkill: remove too-strict __must_check Some drivers don't need the return value of rfkill_set_hw_state(), so it should not be marked as __must_check. Signed-off-by: Alan Jenkins Acked-by: Johannes Berg Signed-off-by: John W. Linville commit c66284f2a421f6aebbafd56cb8b90b8e6a9cb2de Author: Luis R. Rodriguez Date: Thu Jul 16 10:17:35 2009 -0700 ath9k: Tune ANI function processing on AP mode during ANI reset For AP mode we must tune ANI specially for 2 GHz and for 5 GHz. We mask in only the flags we want to toggle on ath9k_hw_ani_control() through the ah->ani_function bitmask, this will take care of ignoring changes during ANI reset which we were disabling before. Testedy-by: Steven Luo Cc: Bennyam Malavazi Cc: Jouni Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7adfd5c71693b81e995283805b17aa4a2ee0ecd9 Author: Andy Whitcroft Date: Thu Jul 16 16:28:11 2009 +0100 rt2x00: Fix chipset detection for rt2500usb The commit below changed the semantics of rt2x00_check_rev so that it no longer checked the bottom 4 bits of the rev were non-zero. During that conversion this part of the check was not propogated to the rt2500usb initialisation. commit 358623c22c9fd837b3b1b444377037f72553dc9f Author: Ivo van Doorn Date: Tue May 5 19:46:08 2009 +0200 rt2x00: Simplify rt2x00_check_rev Without this check rt73 devices are miss recognised as rt2500 devices and two drivers are loaded. Preventing the device being used. Reinstate this check. Signed-off-by: Andy Whitcroft Signed-off-by: John W. Linville commit 6c95e2a2f0f0bf4c8880d5b74b2f7f359d352d03 Author: Niko Jokinen Date: Wed Jul 15 11:00:53 2009 +0300 nl80211: Memory leak fixed Potential memory leak via msg pointer in nl80211_get_key() function. Signed-off-by: Niko Jokinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 3da7429ce92abd79b14e2275a28be144ce2c3013 Author: Larry Finger Date: Tue Jul 14 15:55:16 2009 -0500 rtl8187: Fix for kernel oops when unloading with LEDs enabled When rtl8187 is unloaded and CONFIG_RTL8187_LEDS is set, the kernel may oops when the module is unloaded as the workqueue for led_on was not being cancelled. This patch fixes the problem reported in http://marc.info/?l=linux-wireless&m=124742957615781&w=2. Reported-by: Gábor Stefanik Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 65b5a69860ed3bc4224368b804d381cd9cafa90a Author: Bob Copeland Date: Mon Jul 13 21:57:39 2009 -0400 ath5k: temporarily disable crypto for AP mode Pavel Roskin reported some issues with using AP mode without nohwcrypt=1. Most likely this is similar to the problem fixed some time ago in ath9k by 3f53dd64f192450cb331c0fecfc26ca952fb242f, "ath9k: Fix hw crypto configuration for TKIP in AP mode." That only affects TKIP but it's easiest to just disable that and WEP too until we get a proper fix in. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 35946a571099a50d2595c8866f07617d29558f53 Author: Javier Cardona Date: Mon Jul 13 17:00:10 2009 -0700 mac80211: use correct address for mesh Path Error For forwarded frames, we save the precursor address in addr1 in case it needs to be used to send a Path Error. mesh_path_discard_frame, however, was using addr2 instead of addr1 to send Path Error frames, so correct that and also make the comment regarding this more clear. Signed-off-by: Andrey Yurovsky Signed-off-by: John W. Linville commit e603d9d824ff0eda98a65708a7e82112becf2dca Author: Johannes Berg Date: Mon Jul 13 13:25:58 2009 +0200 mac80211_hwsim: fix use after free Once the "data" pointer is freed, we can't be iterating to the next item in the list any more so we need to use list_for_each_entry_safe with a temporary variable. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5d41635195c06fc3116ef3921fe85a9a3ea5ab20 Author: Johannes Berg Date: Mon Jul 13 13:04:30 2009 +0200 mac80211_hwsim: fix unregistration If you rmmod the module while associated, frames might be transmitted during unregistration -- which will crash if the hwsim%d interface is unregistered first, so only do that after all the virtual wiphys are gone. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 48ab3578a65c5168ecaaa3b21292b643b7bcc2d5 Author: Alan Jenkins Date: Sun Jul 12 17:03:13 2009 +0100 rfkill: fix rfkill_set_states() to set the hw state The point of this function is to set the software and hardware state at the same time. When I tried to use it, I found it was only setting the software state. Signed-off-by: Alan Jenkins Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit 8ef86c7bfac5b44529b73b84bc50d3cf574bfb4b Author: Pavel Roskin Date: Fri Jul 10 16:42:29 2009 -0400 mac80211: fix injection in monitor mode The location of the 802.11 header is calculated incorrectly due to a wrong placement of parentheses. Found by kmemcheck. Signed-off-by: Pavel Roskin Signed-off-by: John W. Linville commit f54c142725ad2ba33c3ee627873cb6966bf05447 Author: Johannes Berg Date: Fri Jul 10 21:41:39 2009 +0200 rfkill: allow toggling soft state in sysfs again Apparently there actually _are_ tools that try to set this in sysfs even though it wasn't supposed to be used this way without claiming first. Guess what: now that I've cleaned it all up it doesn't matter and we can simply allow setting the soft-block state in sysfs. Signed-off-by: Johannes Berg Tested-By: Darren Salt Signed-off-by: John W. Linville commit e2e414d92397c366396d13f627a98a20be92e509 Author: Johannes Berg Date: Fri Jul 10 11:38:14 2009 +0200 mac80211: disable mesh My kvm instance was complaining a lot about sleeping in atomic contexts in the mesh code, and it turns out that both mesh_path_add() and mpp_path_add() need to be able to sleep (they even use synchronize_rcu()!). I put in a might_sleep() to annotate that, but I see no way, at least right now, of actually making sure those functions are only called from process context since they are both called during TX and RX and the mesh code itself even calls them with rcu_read_lock() "held". Therefore, let's disable it completely for now. It's possible that I'm only seeing this because the hwsim's beaconing is broken and thus the peers aren't discovered right away, but it is possible that this happens even if beaconing is working, for a peer that doesn't exist or so. It should be possible to solve this by deferring the freeing of the tables to call_rcu() instead of using synchronize_rcu(), and also using atomic allocations, but maybe it makes more sense to rework the code to not call these from atomic contexts and defer more of the work to the workqueue. Right now, I can't work on either of those solutions though. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7b80ece41aea0b73283c6df5a8f25d40aa13135d Author: Reinette Chatre Date: Thu Jul 9 10:33:39 2009 -0700 iwlwifi: only update byte count table during aggregation The byte count table is only used for aggregation. Updating it in other cases caused fragmented frames to be dropped. This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2004 Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 872ed1902f511a8947021c562f5728a5bf0640b5 Author: Reinette Chatre Date: Thu Jul 9 10:33:37 2009 -0700 iwlwifi: only show active power level via sysfs This changes the power_level file to adhere to the "one value per file" sysfs rule. The user will know which power level was requested as it will be the number just written to this file. It is thus not necessary to create a new sysfs file for this value. In addition it fixes a problem where powertop's parsing expects this value to be the first value in this file without any descriptions. Signed-off-by: Reinette Chatre cc: stable@kernel.org Signed-off-by: John W. Linville commit 513a2396d8e8327aff1ce50bea3fb4f16ff3455b Author: Zhu Yi Date: Thu Jul 9 17:24:15 2009 +0800 iwmc3200wifi: fix NULL pointer dereference in iwm_if_free The driver private data is now based on wiphy. So we should not touch the private data after wiphy_free() is called. The patch fixes the potential NULL pointer dereference by making the iwm_wdev_free() the last one on the interface removal path. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit a376d446771710790f5f3425172b467bf8578e22 Merge: 6847e15 252aa9d Author: Linus Torvalds Date: Tue Jul 14 18:33:54 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." skbuff.h: Fix comment for NET_IP_ALIGN drivers/net: using spin_lock_irqsave() in net_send_packet() NET: phy_device, fix lock imbalance gre: fix ToS/DiffServ inherit bug igb: gcc-3.4.6 fix atlx: duplicate testing of MCAST flag NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines. netdev: restore MTU change operation netdev: restore MAC address set and validate operations sit: fix regression: do not release skb->dst before xmit net: ip_push_pending_frames() fix net: sk_prot_alloc() should not blindly overwrite memory commit 252aa9d94a04252046f3a382e6aca1b5c95921d8 Author: David S. Miller Date: Tue Jul 14 13:13:41 2009 -0700 Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." This reverts commit adeab1afb7de89555c69aab5ca21300c14af6369. As Alan Cox explained, the TTY layer changes that went recently to get rid of the tty->low_latency stuff fixes this already, and even for -stable it's the ->low_latency changes that should go in to fix this, rather than this patch. Signed-off-by: David S. Miller commit adeab1afb7de89555c69aab5ca21300c14af6369 Author: Ralf Baechle Date: Sun Jul 12 21:09:20 2009 -0700 NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines. Guido Trentalancia reports: I am trying to use the kiss driver in the Linux kernel that is being shipped with Fedora 10 but unfortunately I get the following oops: mkiss: AX.25 Multikiss, Hans Albas PE1AYX mkiss: ax0: crc mode is auto. ADDRCONF(NETDEV_CHANGE): ax0: link becomes ready ------------[ cut here ]------------ WARNING: at kernel/softirq.c:77 __local_bh_disable+0x2f/0x83() (Not tainted) [...] unloaded: microcode] Pid: 0, comm: swapper Not tainted 2.6.27.25-170.2.72.fc10.i686 #1 [] warn_on_slowpath+0x65/0x8b [] ? _spin_unlock_irqrestore+0x22/0x38 [] ? __enqueue_entity+0xe3/0xeb [] ? enqueue_entity+0x203/0x20b [] ? enqueue_task_fair+0x3b/0x3f [] ? resched_task+0x3a/0x6e [] ? _spin_unlock_irqrestore+0x22/0x38 [] ? _spin_lock_bh+0xb/0x16 [] __local_bh_disable+0x2f/0x83 [] local_bh_disable+0xb/0xd [] _spin_lock_bh+0xb/0x16 [] mkiss_receive_buf+0x2fb/0x3a6 [mkiss] [] flush_to_ldisc+0xf7/0x198 [] tty_flip_buffer_push+0x41/0x51 [] ftdi_process_read+0x375/0x4ad [ftdi_sio] [] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio] [] usb_hcd_giveback_urb+0x63/0x93 [] uhci_giveback_urb+0xe5/0x15f [] uhci_scan_schedule+0x52e/0x767 [] ? psmouse_handle_byte+0xc/0xe5 [] ? acpi_ev_gpe_detect+0xd6/0xe1 [] uhci_irq+0x110/0x125 [] usb_hcd_irq+0x40/0xa3 [] handle_IRQ_event+0x2f/0x64 [] handle_level_irq+0x74/0xbe [] ? handle_level_irq+0x0/0xbe [] do_IRQ+0xc7/0xfe [] common_interrupt+0x28/0x30 [] ? acpi_idle_enter_simple+0x162/0x19d [] cpuidle_idle_call+0x60/0x92 [] cpu_idle+0x101/0x134 [] rest_init+0x4e/0x50 ======================= ---[ end trace b7cc8076093467ad ]--- ------------[ cut here ]------------ WARNING: at kernel/softirq.c:136 _local_bh_enable_ip+0x3d/0xc4() [...] Pid: 0, comm: swapper Tainted: G W 2.6.27.25-170.2.72.fc10.i686 [] warn_on_slowpath+0x65/0x8b [] ? _spin_unlock_irqrestore+0x22/0x38 [] ? __enqueue_entity+0xe3/0xeb [] ? enqueue_entity+0x203/0x20b [] ? enqueue_task_fair+0x3b/0x3f [] ? resched_task+0x3a/0x6e [] ? _spin_unlock_irqrestore+0x22/0x38 [] ? _spin_lock_bh+0xb/0x16 [] ? mkiss_receive_buf+0x33d/0x3a6 [mkiss] [] _local_bh_enable_ip+0x3d/0xc4 [] local_bh_enable_ip+0x8/0xa [] _spin_unlock_bh+0x11/0x13 [] mkiss_receive_buf+0x33d/0x3a6 [mkiss] [] flush_to_ldisc+0xf7/0x198 [] tty_flip_buffer_push+0x41/0x51 [] ftdi_process_read+0x375/0x4ad [ftdi_sio] [] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio] [] usb_hcd_giveback_urb+0x63/0x93 [] uhci_giveback_urb+0xe5/0x15f [] uhci_scan_schedule+0x52e/0x767 [] ? psmouse_handle_byte+0xc/0xe5 [] ? acpi_ev_gpe_detect+0xd6/0xe1 [] uhci_irq+0x110/0x125 [] usb_hcd_irq+0x40/0xa3 [] handle_IRQ_event+0x2f/0x64 [] handle_level_irq+0x74/0xbe [] ? handle_level_irq+0x0/0xbe [] do_IRQ+0xc7/0xfe [] common_interrupt+0x28/0x30 [] ? acpi_idle_enter_simple+0x162/0x19d [] cpuidle_idle_call+0x60/0x92 [] cpu_idle+0x101/0x134 [] rest_init+0x4e/0x50 ======================= ---[ end trace b7cc8076093467ad ]--- mkiss: ax0: Trying crc-smack mkiss: ax0: Trying crc-flexnet The issue was, that the locking code in mkiss was assuming it was only ever being called in process or bh context. Fixed by converting the involved locking code to use irq-safe locks. Review of other networking line disciplines shows that 6pack, both sync and async PPP and STRIP have similar issues. The ppp_async one is the most interesting one as it sorts out half of the issue as far back as 2004 in commit http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=2996d8deaeddd01820691a872550dc0cfba0c37d Signed-off-by: Ralf Baechle Reported-by: Guido Trentalancia Signed-off-by: David S. Miller commit 240c102d9c54fee7fdc87a4ef2fabc7eb539e00a Author: Ben Hutchings Date: Thu Jul 9 17:54:35 2009 +0000 netdev: restore MAC address set and validate operations alloc_etherdev() used to install default implementations of these operations, but they must now be explicitly installed in struct net_device_ops. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit e864561c12bc743789eab76242b8314d394daa52 Merge: 42359da e594e96 Author: Linus Torvalds Date: Thu Jul 9 20:33:18 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits) cxgb3: Fix crash caused by stashing wrong netdev_queue ixgbe: Fix coexistence of FCoE and Flow Director in 82599 memory barrier: adding smp_mb__after_lock net: adding memory barrier to the poll and receive callbacks netpoll: Fix carrier detection for drivers that are using phylib includecheck fix: include/linux, rfkill.h p54: tx refused but queue active Atheros Kconfig needs to be dependent on WLAN_80211 mac80211: fix docbook mac80211_hwsim: avoid NULL access ssb: Add support for 4318E b43: Add support for 4318E zd1211rw: adding SONY IFU-WLM2 (054c:0257) as a zd1211b device zd1211rw: 07b8:6001 is a ZD1211B r6040: bump driver version to 0.24 and date to 08 July 2009 r6040: restore MIER register correctly when IRQ line is shared ipv4: Fix fib_trie rebalancing, part 4 (root thresholds) davinci_emac: fix kernel oops when changing MAC address while interface is down igb: set lan id prior to configuring phy mac80211: minstrel: avoid accessing negative indices in rix_to_ndx() ... commit 1ce822fa04fd6878f079461a4b8affe4bb5ec27b Author: Jaswinder Singh Rajput Date: Wed Jul 8 21:25:54 2009 +0530 includecheck fix: include/linux, rfkill.h fix the following 'make includecheck' warning: include/linux/rfkill.h: linux/types.h is included more than once. Signed-off-by: Jaswinder Singh Rajput Signed-off-by: John W. Linville commit 47ab3840a389ff1b9959734995123e5bc94c3443 Author: Larry Finger Date: Wed Jul 8 08:33:02 2009 -0500 p54: tx refused but queue active In the mainline kernel, p54usb will fail because the TX queue length can become < 0. This problem has been reported as Bugzilla #13725. The failure is expressed by the following message in the logs: WARNING: at net/mac80211/tx.c:1325 ieee80211_tx+0x23c/0x298 [mac80211]() Hardware name: HP Pavilion dv2700 Notebook PC tx refused but queue active This problem has been recently observed in the wireless-testing tree, where a full solution is being tested. That fix is too invasive for 2.6.31-rcX, but the simple change supplied here will prevent the failure. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 804ef71ee183121de5e9bca1d70d114c97300e17 Author: Jay Sternberg Date: Tue Jul 7 11:18:46 2009 -0700 Atheros Kconfig needs to be dependent on WLAN_80211 Atheros top level menu needs a "depends WLAN_80211" to properly indent within menuconfig and xconfig interfaces. This is purely a visual issue but it effects all subsequent drivers. The issue is the top level menu does not include a dependency on WLAN_80211 so within the tree structure, Atheros is at the same level as WLAN_80211 but when WLAN_80211 collapsed, the menu disappears along with all subsequent drives, so it is really a subordinate. Signed-off-by: Jay Sternberg Signed-off-by: John W. Linville commit 4ff176674e75bdee9022dded415fb805f15700ad Author: Johannes Berg Date: Tue Jul 7 03:43:02 2009 +0200 mac80211_hwsim: avoid NULL access There's a race condition -- started can be set to true before channel is set due to the way mac80211 callbacks currently work (->start should probably pass the channel we would like to have initially). For now simply add a check to hwsim to avoid dereferencing the NULL channel pointer. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit cff782cd94df7adea84af6aa9516c8088f7ea950 Author: Clyde McPherson Date: Tue Jun 30 22:39:28 2009 -0500 b43: Add support for 4318E Added support for the Broadcom 4318E chipset on PCMCIA/CF cards. The 4318E can do 802.11A/B/G, only B and G mode are supported in b43. Signed-off-by: Clyde McPherson Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 8b339d05805fb91cc0b5179af5b4d05d9f8b949c Author: Hin-Tak Leung Date: Fri Jun 26 05:28:15 2009 +0100 zd1211rw: adding SONY IFU-WLM2 (054c:0257) as a zd1211b device Yevgen Kotikov reported success on the sourceforge zd1211-devs list with the following details: Brand/retail: SONY IFU-WLM2 USB-IDs: Vendor: 0x054C Device: 0x0257 chip ID: zd1211b chip 054c:0257 v4802 high 00-0b-6b AL2230_RF pa0 ----- FCC ID: unknown Signed-off-by: Hin-Tak Leung Tested-by: Yevgen Kotikov Signed-off-by: John W. Linville commit b4b223cdd5981f776491134faa7bc4ac342b44d4 Author: Pascal Terjan Date: Thu Jun 18 17:54:03 2009 +0200 zd1211rw: 07b8:6001 is a ZD1211B On a shuttle machine here we got 07b8:6001 device, handled by zd1211rw, which does not work. Scanning is OK but association does not work, we get "direct probe to AP xxx timed out" It appears that this simple patch makes the device work perfectly. This id was already there in initial import of the driver so I don't know if it has ever been working as ZD1211 (which would mean they changed it and kept the id :( ). Signed-off-by: Pascal Terjan Signed-off-by: John W. Linville commit ad361c9884e809340f6daca80d56a9e9c871690a Author: Joe Perches Date: Mon Jul 6 13:05:40 2009 -0700 Remove multiple KERN_ prefixes from printk formats Commit 5fd29d6ccbc98884569d6f3105aeca70858b3e0f ("printk: clean up handling of log-levels and newlines") changed printk semantics. printk lines with multiple KERN_ prefixes are no longer emitted as before the patch. is now included in the output on each additional use. Remove all uses of multiple KERN_s in formats. Signed-off-by: Joe Perches Signed-off-by: Linus Torvalds commit 3938b45c1c75e53d45eb65ac253f12e86239c9ba Author: Luciano Coelho Date: Fri Jul 3 08:25:08 2009 +0300 mac80211: minstrel: avoid accessing negative indices in rix_to_ndx() If rix is not found in mi->r[], i will become -1 after the loop. This value is eventually used to access arrays, so we were accessing arrays with a negative index, which is obviously not what we want to do. This patch fixes this potential problem. Signed-off-by: Luciano Coelho Acked-by: Felix Fietkau Signed-off-by: John W. Linville commit 2dce4c2b5f0b43bd25bf9ea6ded06b7f8a54c91f Author: Johannes Berg Date: Thu Jul 2 15:46:41 2009 +0200 cfg80211: fix refcount leak The code in cfg80211's cfg80211_bss_update erroneously grabs a reference to the BSS, which means that it will never be freed. Signed-off-by: Johannes Berg Cc: stable@kernel.org [2.6.29, 2.6.30] Signed-off-by: John W. Linville commit 59615b5f9d1323898ca94e88e595b5b04115076a Author: Andrey Yurovsky Date: Thu Jun 25 16:07:42 2009 -0700 mac80211: fix allocation in mesh_queue_preq We allocate a PREQ queue node in mesh_queue_preq, however the allocation may cause us to sleep. Use GFP_ATOMIC to prevent this. [ 1869.126498] BUG: scheduling while atomic: ping/1859/0x10000100 [ 1869.127164] Modules linked in: ath5k mac80211 ath [ 1869.128310] Pid: 1859, comm: ping Not tainted 2.6.30-wl #1 [ 1869.128754] Call Trace: [ 1869.129293] [] __schedule_bug+0x48/0x4d [ 1869.129866] [] __schedule+0x77/0x67a [ 1869.130544] [] ? release_console_sem+0x17d/0x185 [ 1869.131568] [] ? mesh_queue_preq+0x2b/0x165 [mac80211] [ 1869.132318] [] schedule+0x8/0x1f [ 1869.132807] [] __cond_resched+0x16/0x2f [ 1869.133478] [] _cond_resched+0x27/0x32 [ 1869.134191] [] kmem_cache_alloc+0x1c/0xcf [ 1869.134714] [] ? printk+0x15/0x17 [ 1869.135670] [] mesh_queue_preq+0x2b/0x165 [mac80211] [ 1869.136731] [] mesh_nexthop_lookup+0xee/0x12d [mac80211] [ 1869.138130] [] ieee80211_xmit+0xe6/0x2b2 [mac80211] [ 1869.138935] [] ? ath5k_hw_setup_rx_desc+0x0/0x66 [ath5k] [ 1869.139831] [] ? ath5k_tasklet_rx+0xba/0x506 [ath5k] [ 1869.140863] [] ieee80211_subif_start_xmit+0x6c9/0x6e4 [mac80211] [ 1869.141665] [] ? handle_level_irq+0x78/0x9d [ 1869.142390] [] dev_hard_start_xmit+0x168/0x1c7 [ 1869.143092] [] __qdisc_run+0xe1/0x1b7 [ 1869.143612] [] qdisc_run+0x18/0x1a [ 1869.144248] [] dev_queue_xmit+0x16a/0x25a [ 1869.144785] [] ? _read_unlock_bh+0xe/0x10 [ 1869.145465] [] neigh_resolve_output+0x19c/0x1c7 [ 1869.146182] [] ? ip_finish_output+0x0/0x51 [ 1869.146697] [] ip_finish_output2+0x182/0x1bc [ 1869.147358] [] ip_finish_output+0x4d/0x51 [ 1869.147863] [] ip_output+0x80/0x85 [ 1869.148515] [] dst_output+0x9/0xb [ 1869.149141] [] ip_local_out+0x17/0x1a [ 1869.149632] [] ip_push_pending_frames+0x1f3/0x255 [ 1869.150343] [] raw_sendmsg+0x5e6/0x667 [ 1869.150883] [] ? insert_work+0x6a/0x73 [ 1869.151834] [] ? ieee80211_invoke_rx_handlers+0x17da/0x1ae8 [mac80211] [ 1869.152630] [] inet_sendmsg+0x3b/0x48 [ 1869.153232] [] __sock_sendmsg+0x45/0x4e [ 1869.153740] [] sock_sendmsg+0xb8/0xce [ 1869.154519] [] ? ath5k_hw_setup_rx_desc+0x0/0x66 [ath5k] [ 1869.155289] [] ? autoremove_wake_function+0x0/0x30 [ 1869.155859] [] ? __copy_from_user_ll+0x11/0xce [ 1869.156573] [] ? copy_from_user+0x31/0x54 [ 1869.157235] [] ? verify_iovec+0x40/0x6e [ 1869.157778] [] sys_sendmsg+0x14d/0x1a5 [ 1869.158714] [] ? __ieee80211_rx+0x49e/0x4ee [mac80211] [ 1869.159641] [] ? ath5k_rxbuf_setup+0x6d/0x8d [ath5k] [ 1869.160543] [] ? ath5k_hw_setup_rx_desc+0x0/0x66 [ath5k] [ 1869.161434] [] ? ath5k_hw_get_rxdp+0xe/0x10 [ath5k] [ 1869.162319] [] ? ath5k_tasklet_rx+0xba/0x506 [ath5k] [ 1869.163063] [] ? enable_8259A_irq+0x40/0x43 [ 1869.163594] [] ? __dequeue_entity+0x23/0x27 [ 1869.164793] [] ? __switch_to+0x2b/0x105 [ 1869.165442] [] ? finish_task_switch+0x5b/0x74 [ 1869.166129] [] sys_socketcall+0x14b/0x17b [ 1869.166612] [] syscall_call+0x7/0xb Signed-off-by: Andrey Yurovsky Signed-off-by: John W. Linville commit a7a4e41ed62a6a1fce6eb503c920f615eca27f02 Author: Samuel Ortiz Date: Wed Jun 24 16:07:22 2009 +0200 iwmc3200wifi: add Kconfig help We're missing a Kconfig help for the iwmc3200wifi driver. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit cbfe89c67b58e2bd1b47f6986b3b793f06f3d9b0 Author: Vasanthakumar Thiagarajan Date: Wed Jun 24 18:58:47 2009 +0530 ath9k: Fix leak in tx descriptor When we reclaim the tx desc, we always assume that the last desc is a holding desc, which is not true, and skip it. If the tx queue is drained during channel change, internal reset and etc, the last descriptor may not be the holding descriptor and we fail to reclaim them. This results in the following two issues. 1. Tx stuck - We drop all the frames coming from upper layer due to shortage in tx desc. 2. Crash - If we fail to reclaim a tx descriptor, we miss to update the tx BA window with the seq number of the frame associated to that desc, which, at some point, result in the following crash due to an assert failure in ath_tx_addto_baw(). This patch fixes these two issues. kernel BUG at ../drivers/net/wireless/ath/ath9k/xmit.c:180! [155064.304164] invalid opcode: 0000 [#1] SMP Call Trace: [] ? ath9k_tx+0xeb/0x160 [ath9k] [] ipv6? __ieee80211_tx+0x41/0x120 [mac80211] [] ? aes_i586ieee80211_master_start_xmit+0x28e/0x560 [mac80211] [] aes_generic? _spin_lock_irqsave+0x31/0x40 [] ? dev_hard_start_xmit+0x16b/0x1c0 [] ? __qdisc_run+0x1b5/0x200 [] ? af_packetieee80211_select_queue+0xa/0x100 [mac80211] [] ? i915dev_queue_xmit+0x2e7/0x3f0 [] ? ieee80211_subif_start_xmit+0x369/0x7a0 [mac80211] [] ? ip_output+0x55/0xb0 [] ? show_memcpy_count+0x18/0x60 [] ? __kfree_skb+0x36/0x90 [] ? binfmt_miscdev_queue_xmit_nit+0xd2/0x110 [] ? dev_hard_start_xmit+0x16b/0x1c0 [] ? __qdisc_run+0x1b5/0x200 [] ? scoarp_create+0x57/0x2a0 [] ? bridgedev_queue_xmit+0x2e7/0x3f0 [] ? eth_header+0x0/0xc0 [] stp? arp_xmit+0x5f/0x70 [] ? arp_send+0x5f/0x70 [] bnep? arp_solicit+0x105/0x210 [] ? neigh_timer_handler+0x19a/0x390 [] ? run_timer_softirq+0x138/0x210 [] ? ppdevneigh_timer_handler+0x0/0x390 [] ? neigh_timer_handler+0x0/0x390 Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit fd4973c56f8d9baac8d269791a90e5119ce30a0e Author: Larry Finger Date: Sat Jun 20 12:58:11 2009 -0500 b43/b43legacy: fix radio LED initialization Fix condition in which radio LED did not initialize correctly, and remove 4 compilation warnings. After the recent changes in rfkill, the radio LED used by b43/b43legacy did not always initialize correctly. Both b43 and b43legacy used the deprecated variable radio_enabled in struct ieee80211_conf. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 1f5fc70a250cc18f066072119e9fbbc20dad865f Author: Jiri Slaby Date: Sat Jun 20 12:31:11 2009 +0200 Wireless: nl80211, fix lock imbalance Don't forget to unlock cfg80211_mutex in one fail path of nl80211_set_wiphy. Signed-off-by: Jiri Slaby Signed-off-by: John W. Linville commit 0ca1b08eba627b4245efd0f71b55a062bf163777 Author: David S. Miller Date: Mon Jul 6 12:49:18 2009 -0700 Revert "p54: Use SKB list handling helpers instead of by-hand code." This reverts commit a1091aae19b1d9c85d91c86915a611387f67a26b. commit 4a27096bbe2cad4c6e78802a0d9dfe0e598a1129 Author: Jesper Dangaard Brouer Date: Fri Jun 26 10:45:53 2009 +0000 mac80211: Use rcu_barrier() on unload. The mac80211 module uses rcu_call() thus it should use rcu_barrier() on module unload. The rcu_barrier() is placed in mech.c ieee80211_stop_mesh() which is invoked from ieee80211_stop() in case vif.type == NL80211_IFTYPE_MESH_POINT. Acked-by: Paul E. McKenney Acked-by: Johannes Berg Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller commit 5165aece0efac6574fc3e32b6f1c2a964820d1c6 Merge: e38be99 f6b24ca Author: Linus Torvalds Date: Mon Jun 22 11:57:09 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (43 commits) via-velocity: Fix velocity driver unmapping incorrect size. mlx4_en: Remove redundant refill code on RX mlx4_en: Removed redundant check on lso header size mlx4_en: Cancel port_up check in transmit function mlx4_en: using stop/start_all_queues mlx4_en: Removed redundant skb->len check mlx4_en: Counting all the dropped packets on the TX side usbnet cdc_subset: fix issues talking to PXA gadgets Net: qla3xxx, remove sleeping in atomic ipv4: fix NULL pointer + success return in route lookup path isdn: clean up documentation index cfg80211: validate station settings cfg80211: allow setting station parameters in mesh cfg80211: allow adding/deleting stations on mesh ath5k: fix beacon_int handling MAINTAINERS: Fix Atheros pattern paths ath9k: restore PS mode, before we put the chip into FULL SLEEP state. ath9k: wait for beacon frame along with CAB acer-wmi: fix rfkill conversion ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling ... commit a97f4424fb4cddecf9b13c9b0e3f79924b624a7f Author: Johannes Berg Date: Thu Jun 18 17:23:43 2009 +0200 cfg80211: validate station settings When I disallowed interfering with stations on non-AP interfaces, I not only forget mesh but also managed interfaces which need this for the authorized flag. Let's actually validate everything properly. This fixes an nl80211 regression introduced by the interfering, under which wpa_supplicant -Dnl80211 could not properly connect. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9a5e8bbc8fece7851a2a69a8676a6fd0507bc550 Author: Andrey Yurovsky Date: Tue Jun 16 16:09:37 2009 -0700 cfg80211: allow setting station parameters in mesh Mesh Point interfaces can also set parameters, for example plink_open is used to manually establish peer links from user-space (currently via iw). Add Mesh Point to the check in nl80211_set_station. Signed-off-by: Andrey Yurovsky Signed-off-by: John W. Linville commit 155cc9e4b1d60161ee53ffaf2c15b9411f086fa7 Author: Andrey Yurovsky Date: Tue Jun 16 11:31:04 2009 -0700 cfg80211: allow adding/deleting stations on mesh Commit b2a151a288 added a check that prevents adding or deleting stations on non-AP interfaces. Adding and deleting stations is supported for Mesh Point interfaces, so add Mesh Point to that check as well. Signed-off-by: Andrey Yurovsky Signed-off-by: John W. Linville commit eab0cd493c08632ef10624d0169849c973951c66 Author: Jiri Slaby Date: Fri Jun 19 01:06:45 2009 +0200 ath5k: fix beacon_int handling 73ca5203366235f8a43e490767284ba8cfd8c479 (ath5k: remove conf->beacon_int usage) removed bintval setting from ath5k_config. We need to init the interval earlier and don't touch it in add_interface anymore. Otherwise it will be set only once by upper layer through bss_info_changed but not on second and further hostap executions. We ended up having bintval 1000 which rendered the AP useless on many clients. Signed-off-by: Jiri Slaby Cc: Nick Kossifidis Cc: Luis R. Rodriguez Cc: Bob Copeland Signed-off-by: John W. Linville commit 38ab422e64d991472ce21ffdd7a37e8a02279697 Author: Gabor Juhos Date: Wed Jun 17 20:53:21 2009 +0200 ath9k: restore PS mode, before we put the chip into FULL SLEEP state. We want to put the chip into FULL SLEEP state, when we are disabling the radio, but the the current code always change it to AWAKE/NETWORK SLEEP. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 58f5fffdc3b8567b3fa8ed77d75699db87e2d1d4 Author: Gabor Juhos Date: Wed Jun 17 20:53:20 2009 +0200 ath9k: wait for beacon frame along with CAB Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 8451d22dad40a66416b8d9c0952efa09ec5398c5 Author: Jouni Malinen Date: Tue Jun 16 11:59:23 2009 +0300 ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling This reverts 'ath5k: remove dummy PCI "retry timeout" fix' on the same theory as in 'ath9k: Fix PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling'. Reported-by: Bob Copeland Cc: stable@kernel.org Signed-off-by: John W. Linville commit 464902e812025792c9e33e19e1555c343672d5cf Author: Alan Jenkins Date: Tue Jun 16 14:54:04 2009 +0100 rfkill: export persistent attribute in sysfs This information allows userspace to implement a hybrid policy where it can store the rfkill soft-blocked state in platform non-volatile storage if available, and if not then file-based storage can be used. Some users prefer platform non-volatile storage because of the behaviour when dual-booting multiple versions of Linux, or if the rfkill setting is changed in the BIOS setting screens, or if the BIOS responds to wireless-toggle hotkeys itself before the relevant platform driver has been loaded. Signed-off-by: Alan Jenkins Acked-by: Henrique de Moraes Holschuh Signed-off-by: John W. Linville commit 06d5caf47ef4fbd9efdceae33293c42778cb7b0c Author: Alan Jenkins Date: Tue Jun 16 15:39:51 2009 +0100 rfkill: don't restore software blocked state on persistent devices The setting of the "persistent" flag is also made more explicit using a new rfkill_init_sw_state() function, instead of special-casing rfkill_set_sw_state() when it is called before registration. Suspend is a bit of a corner case so we try to get away without adding another hack to rfkill-input - it's going to be removed soon. If the state does change over suspend, users will simply have to prod rfkill-input twice in order to toggle the state. Userspace policy agents will be able to implement a more consistent user experience. For example, they can avoid the above problem if they toggle devices individually. Then there would be no "global state" to get out of sync. Currently there are only two rfkill drivers with persistent soft-blocked state. thinkpad-acpi already checks the software state on resume. eeepc-laptop will require modification. Signed-off-by: Alan Jenkins CC: Marcel Holtmann Acked-by: Henrique de Moraes Holschuh Signed-off-by: John W. Linville commit 7fa20a7f60df0afceafbb8197b5d110507f42c72 Author: Alan Jenkins Date: Tue Jun 16 14:53:24 2009 +0100 rfkill: rfkill_set_block() when suspended nitpick If we return after fiddling with the state, userspace will see the wrong state and rfkill_set_sw_state() won't work until the next call to rfkill_set_block(). At the moment rfkill_set_block() will always be called from rfkill_resume(), but this will change in future. Also, presumably the point of this test is to avoid bothering devices which may be suspended. If we don't want to call set_block(), we probably don't want to call query() either :-). Signed-off-by: Alan Jenkins Signed-off-by: John W. Linville commit f0214843ba23d9bf6dc6b8ad2c6ee27b60f0322e Author: Jouni Malinen Date: Tue Jun 16 11:59:23 2009 +0300 ath9k: Fix PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling An earlier commit, 'ath9k: remove dummy PCI "retry timeout" fix', removed code that was documented to disable RETRY_TIMEOUT register (PCI reg 0x41) since it was claimed to be a no-op. However, it turns out that there are some combinations of hosts and ath9k-supported cards for which this is not a no-op (reg 0x41 has value 0x80, not 0) and this code (or something similar) is needed. In such cases, the driver may be next to unusable due to very frequent PCI FATAL interrupts from the card. Reverting the earlier commit, i.e., restoring the RETRY_TIMEOUT disabling, seems to resolve the issue. Since the removal of this code was not based on any known issue and was purely a cleanup change, the safest option here is to just revert that commit. Should there be desire to clean this up in the future, the change will need to be tested with a more complete coverage of cards and host systems. http://bugzilla.kernel.org/show_bug.cgi?id=13483 Cc: stable@kernel.org Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit f72151fb6820e90ce12a15e2768aa41150c5186d Author: Hin-Tak Leung Date: Tue Jun 16 03:15:56 2009 +0100 zd1211rw: adding 083a:e503 as a ZD1211B device Hans Pontar reported success on the sourceforge zd1211-devs mailing list. The device is branded "Arcor Easy Stick A 50 WLAN" (device manufactured by SMC for a German ISP - SMC model name: WN4501H-LF-IR). General information and Windows driver are available under (German only): http://www.arcor.de/hilfe/neu/index.php?sid=&aktion=anzeigen&rubrik=004018140&id=487 Device details: USB-IDs: Vendor: 0x083A Device: 0xE503 Chip ID: zd1211b chip 083a:e503 v4810 high 00-1d-19 AL2230S_RF pa0 g--N- Signed-off-by: Hin-Tak Leung Tested-by: Hans Pontar Signed-off-by: John W. Linville commit 68810c5dc5f6bbaa0bbf6acce7cb56d97a1c8fd0 Author: Zhu Yi Date: Mon Jun 15 21:59:49 2009 +0200 iwmc3200wifi: add a mutex to protect iwm_reset_worker The patch adds a mutex to protect the iwm_reset_worker against netdev ndo_open and ndo_stop because all of them call iwm_up and iwm_down in the implementation. Note the latter two are already protected by rtnl. So if iwm_reset_worker is not required in the future, the mutex can also be removed. Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 4e9aa52e36a7beb4c0163324a3de759d7cf2e442 Author: Zhu Yi Date: Mon Jun 15 21:59:48 2009 +0200 iwmc3200wifi: fix potential kernel oops on module removal The iwm_if_free() is called before destroy_workqueue for isr_wq on device remove method. But if there is still some pending work in the isr_wq, the required data structures are already freed at this point. This leeds a kernel oops. The patch fixes this problem by moving iwm_if_free after destroy_workqueue. Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit d7e057dca3f1b76ff44dd16fefcd493a52614aad Author: Zhu Yi Date: Mon Jun 15 21:36:14 2009 +0200 iwmc3200wifi: add iwm_if_add and iwm_if_remove We used to do alloc_netdev and register_netdev at the same time in iwm_if_alloc. But some bus related structures will only be initialized after iwm_priv is allocated. This caused a race condition that the netdev might be registered earlier. The patch adds iwm_if_add and iwm_if_remove so that the bus layer could register the device after all initialization is done. Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 8d96e7960b6b520eb52be6e1eb7c794da5db9555 Author: Zhu Yi Date: Mon Jun 15 21:36:13 2009 +0200 iwmc3200wifi: check for iwm_priv_init error We need to check for iwm_priv_init() errors and do proper cleanups. Otherwise we may fail to catch the create_singlethread_workqueue() error which will cause a kernel oops when destroy_workqueue() later. Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit d2aa4550379f92e929af7ed1dd4f55e6a1e331f8 Merge: 9e3e4b1 cb2107b Author: Linus Torvalds Date: Thu Jun 18 14:07:15 2009 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (55 commits) netxen: fix tx ring accounting netxen: fix detection of cut-thru firmware mode forcedeth: fix dma api mismatches atm: sk_wmem_alloc initial value is one net: correct off-by-one write allocations reports via-velocity : fix no link detection on boot Net / e100: Fix suspend of devices that cannot be power managed TI DaVinci EMAC : Fix rmmod error net: group address list and its count ipv4: Fix fib_trie rebalancing, part 2 pkt_sched: Update drops stats in act_police sky2: version 1.23 sky2: add GRO support sky2: skb recycling sky2: reduce default transmit ring sky2: receive counter update sky2: fix shutdown synchronization sky2: PCI irq issues sky2: more receive shutdown sky2: turn off pause during shutdown ... Manually fix trivial conflict in net/core/skbuff.c due to kmemcheck commit 156f5a7801195fa2ce44aeeb62d6cf8468f3332a Author: GeunSik Lim Date: Tue Jun 2 15:01:37 2009 +0900 debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem. Many developers use "/debug/" or "/debugfs/" or "/sys/kernel/debug/" directory name to mount debugfs filesystem for ftrace according to ./Documentation/tracers/ftrace.txt file. And, three directory names(ex:/debug/, /debugfs/, /sys/kernel/debug/) is existed in kernel source like ftrace, DRM, Wireless, Documentation, Network[sky2]files to mount debugfs filesystem. debugfs means debug filesystem for debugging easy to use by greg kroah hartman. "/sys/kernel/debug/" name is suitable as directory name of debugfs filesystem. - debugfs related reference: http://lwn.net/Articles/334546/ Fix inconsistency of directory name to mount debugfs filesystem. * From Steven Rostedt - find_debugfs() and tracing_files() in this patch. Signed-off-by: GeunSik Lim Acked-by : Inaky Perez-Gonzalez Reviewed-by : Steven Rostedt Reviewed-by : James Smart CC: Jiri Kosina CC: David Airlie CC: Peter Osterlund CC: Ananth N Mavinakayanahalli CC: Anil S Keshavamurthy CC: Masami Hiramatsu Signed-off-by: Greg Kroah-Hartman commit cadeba315cc91ae1b57632e61b0cec3a4ed7088d Author: John W. Linville Date: Wed May 27 00:49:36 2009 +0200 firmware: wireless/libertas: prepare for FIRMWARE_NAME_MAX removal We're going to remove the FIRMWARE_NAME_MAX definition in order to avoid any firmware name length restriction. This patch eplaces the shared FIRMWARE_NAME_MAX definition with a libertas local one. Signed-off-by: John W. Linville Acked-by: Dan Williams Acked-by: Samuel Ortiz Signed-off-by: Greg Kroah-Hartman commit 1fa6f4af9f55bc1b753af04276984429d6b5a613 Author: Johannes Berg Date: Mon Jun 15 18:13:58 2009 +0200 mac80211: fix wext bssid/ssid setting When changing to a new BSSID or SSID, the code in ieee80211_set_disassoc() needs to have the old data still valid to be able to disconnect and clean up properly. Currently, however, the old data is thrown away before ieee80211_set_disassoc() is ever called, so fix that by calling the function _before_ the old data is overwritten. This is (one of) the issue(s) causing mac80211 to hold cfg80211's BSS structs forever, and them thus being returned in scan results after they're long gone. http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2015 Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f0e9a8606ce60880249fd570fbebf4472c3d37c0 Author: Gabor Juhos Date: Mon Jun 15 17:49:11 2009 +0200 ath9k: process rx packet if we are waiting for CAB If we are in PS mode, we have to process the received frame if the SC_OP_WAIT_FOR_CAB bit is set. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 7fe96a16486fb617a26b39a4895c7522c50fc555 Author: Gabor Juhos Date: Mon Jun 15 17:49:10 2009 +0200 ath9k: prevent sleeping while we are waiting for CAB We have to remain awake if the SC_OP_WAIT_FOR_CAB flag is set. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 3989279ccc838c7357c75af6090f56f5cb555158 Author: Gabor Juhos Date: Mon Jun 15 17:49:09 2009 +0200 ath9k: restore power mode on error path The ath9k_ps_{wakeup,restore} calls must be in balance. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 7e9debe9789456426ec8574ead879e33da19ee57 Author: Johannes Berg Date: Mon Jun 15 13:42:25 2009 +0200 mac80211: disconnect when user changes channel If we do not disconnect when a channel switch is requested, we end up eventually detection beacon loss from the AP and then disconnecting, without ever really telling the AP, so we might just as well disconnect right away. Additionally, this fixes a problem with iwlwifi where the driver will clear some internal state on channel changes like this and then get confused when we actually go clear that state from mac80211. It may look like this patch drops the no-IBSS check, but that is already handled by cfg80211 in the wext handler it provides for IBSS (cfg80211_ibss_wext_siwfreq). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit db2e6bd4e966a36c6b2f1921feb3537e8254415c Author: Johannes Berg Date: Sun Jun 14 17:37:39 2009 +0200 mac80211: add queue debugfs file I suspect that some driver bugs can cause queues to be stopped while they shouldn't be, but it's hard to find out whether that is the case or not without having any visible information about the queues. This adds a file to debugfs that allows us to see the queues' statuses. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 3b319aae4244f9b4758212605f67cf63207a4fa1 Author: Johannes Berg Date: Sat Jun 13 14:50:26 2009 +0530 ath9k: port to cfg80211 rfkill This ports the ath9k rfkill code to the new API offered by cfg80211 and thus removes a lot of useless stuff. ("With this series a kernel panic, which is a regression, during module unload disappears." -- Vasanthakumar Thiagarajan Other patches in the series: ath9k: Add helper to get ath9k specific current channel ath9k: Make sure we have current channel in ah_curchan before rf disable/enable -- JWL) Signed-off-by: Johannes Berg Cc: Luis Rodriguez Tested-by: Vasanthakumar Thiagarajan Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 159cd468bc885f7a2fbc75bbfe782782e52ef9c9 Author: Vasanthakumar Thiagarajan Date: Sat Jun 13 14:50:25 2009 +0530 ath9k: Make sure we have current channel in ah_curchan before rf disable/enable Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 82880a7cf9c059c11cd6ad1868c48969956f966b Author: Vasanthakumar Thiagarajan Date: Sat Jun 13 14:50:24 2009 +0530 ath9k: Add helper to get ath9k specific current channel Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 35edf8aae8f903b154d658b9a7eed0d5c1a4a814 Author: Nick Kossifidis Date: Fri Jun 12 16:09:53 2009 -0700 ath5k: fix mesh beaconing This patch is from Nick Kossifidis but he forgot to send it. It ensures that the beacon queue gets started in mesh mode as well, otherwise ath5k will not beacon in mesh point mode. At this time, we still need to issue a scan before mesh beaconing will work but that appears to be a separate problem. Signed-off-by: Andrey Yurovsky Signed-off-by: Nick Kossifidis Signed-off-by: John W. Linville commit 8a9b99267cb3b51d4e59693c03e1204d86b42445 Author: Abhijeet Kolekar Date: Fri Jun 12 13:22:52 2009 -0700 iwlwifi/iwl3945: fix suspend resume association bug Patch fixes the following bugs at http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2005 http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2007 If we suspend with an association and then resumed, we need to synchronize the active rxon with staging rxon, else we will get an error when iwl_alive_start try to commit rxon and staging is set to channel 0. Before going to suspend staging and active rxon are in sync. After resuming from the suspend, iwl_mac_start is called and it clears the staging rxon. Patch fixes the bug by not clearing the staging rxon in iwl_mac_start. Patch also adds similar fix to 3945. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 611d3eb72aa7847a1081e6c1ac05fd2012652cde Author: Wey-Yi Guy Date: Fri Jun 12 13:22:51 2009 -0700 iwlwifi: check for channel location for 40MHz for both mixed and pure 40MHz, need to check for valid channel location. if the specified channel not allow the channel location requested (ABOVE, BELOW), then reject the Fat channel access This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1988 ("iwlwifi: checking for 40MHz mode" and "iwlwifi: check control channel for pure 40MHz" combine with this to address the above bug. -- JWL) Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 508b08e7121f2083c9e9cd82f10b9088b6bc13fb Author: Wey-Yi Guy Date: Fri Jun 12 13:22:50 2009 -0700 iwlwifi: check control channel for pure 40MHz for pure 40MHz mode, set the control channel location if provided, but not like Mixed mode; if information is not provided, still allow 40MHz operation. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 8e8df3a08c6f3098b54639ee6892e3753ad5f210 Author: Wey-Yi Guy Date: Fri Jun 12 13:22:49 2009 -0700 iwlwifi: checking for 40MHz mode when checking for 40MHz, compare ht_protection to IEEE80211_HT_OP_MODE_PROTECTION_20MHZ. ht_protection is not a bit-mask field Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d7129e190c3107db8ac11a9e51035641b68d2aa7 Author: Johannes Berg Date: Fri Jun 12 13:22:48 2009 -0700 iwlwifi: revamp bss_info_changed My earlier patch, "mac80211: unify config_interface and bss_info_changed" introduced a bug in iwlwifi where it will do some things incorrectly now when reassociating. Revamp iwl_bss_info_changed to fix that issue and make it easier to read. Also, while at it, add comments about things that it should do but currently doesn't. Finally, also improve the locking in the function. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 87e501b351ed9d837e63f6506b7e66331a69ed58 Author: Sebastian Andrzej Siewior Date: Fri Jun 12 21:37:31 2009 +0200 net/libertas: don't recursive spin lock in if_spi_e2h() |BUG: spinlock recursion on CPU#0, lbs_spi_thread/1030 | lock: dee9a1bc, .magic: dead4ead, .owner: lbs_spi_thread/1030, .owner_cpu: 0 |Call Trace: |[deec3eb0] [c0007220] show_stack+0x4c/0x15c (unreliable) |[deec3ef0] [c0187720] spin_bug+0x9c/0xb0 |[deec3f10] [c0187890] _raw_spin_lock+0x54/0x148 |[deec3f40] [c02d260c] _spin_lock_irqsave+0x2c/0x44 |[deec3f60] [e8671800] lbs_queue_event+0x7c/0x130 [libertas] |[deec3f80] [e8725f04] lbs_spi_thread+0x538/0x58c [libertas_spi] |[deec3fe0] [c004f270] kthread+0x4c/0x88 |[deec3ff0] [c000f33c] kernel_thread+0x4c/0x68 if_spi_e2h() is grabbing ->driver_lock just while calling lbs_queue_event() which is grabbing the same lock. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: John W. Linville commit b3781c74373489fa325ce64efdf72f6c8567b783 Author: Andrey Yurovsky Date: Fri Jun 12 12:45:36 2009 -0700 libertas: fix IEEE PS mode in GSPI driver The card firmware does not set the Command Download Ready interrupt bit when IEEE PS mode is enabled, preventing the driver from sending commands (such as the command to exit IEEE PS mode) since there is no indication that the card is ready to accept commands. This patch works around the problem by using the the TX Download Ready bit in place of the Command Download Ready Bit while in IEEE PS mode. TX Download Ready is set in IEEE PS mode. Signed-off-by: Andrey Yurovsky Signed-off-by: Javier Cardona Signed-off-by: John W. Linville commit 68f2d02669f7102be80aae47155f45e18950d223 Author: Jouni Malinen Date: Thu Jun 11 18:19:45 2009 +0300 mac80211: Do not try to associate with an empty SSID It looks like some programs (e.g., NM) are setting an empty SSID with SIOCSIWESSID in some cases. This seems to trigger mac80211 to try to associate with an invalid configuration (wildcard SSID) which will result in failing associations (or odd issues, potentially including kernel panic with some drivers) if the AP were to actually accept this anyway). Only start association process if the SSID is actually set. This speeds up connection with NM in number of cases and avoids sending out broken association request frames. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb Merge: ca44d6e 45e3e19 Author: David S. Miller Date: Mon Jun 15 03:02:23 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: Documentation/feature-removal-schedule.txt drivers/scsi/fcoe/fcoe.c net/core/drop_monitor.c net/core/net-traces.c commit 5b548140225c6bbbbd560551dd1048b2c0ce58be Author: Patrick McHardy Date: Fri Jun 12 06:22:29 2009 +0000 net: use symbolic values for ndo_start_xmit() return codes Convert magic values 1 and -1 to NETDEV_TX_BUSY and NETDEV_TX_LOCKED respectively. 0 (NETDEV_TX_OK) is not changed to keep the noise down, except in very few cases where its in direct proximity to one of the other values. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 4153e77596c4caaf52293b0c6b2207d73ed8f1eb Author: Patrick McHardy Date: Fri Jun 12 04:08:02 2009 +0000 net: fix network drivers ndo_start_xmit() return values (part 3) net: fix network drivers ndo_start_xmit() return values (part 3) Fix up wireless drivers that return an errno value to qdisc_restart(), causing qdisc_restart() to print a warning an requeue/retransmit the skb. - airo: transmission not implemented for chip, intention is to free and abort - ipw2200: transmission not implemented for promiscous mode, intention is to drop - prism54: intention is to drop - wl3501_cs: intention appears to be to drop - zd1201: error counter indicates intention is to drop All drivers compile tested. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 4737f0978d6e64eae468e01fa181abf6499e6b84 Author: Pavel Machek Date: Fri Jun 5 00:44:53 2009 +0200 trivial: Kconfig: .ko is normally not included in module names .ko is normally not included in Kconfig help, make it consistent. Signed-off-by: Pavel Machek Signed-off-by: Jiri Kosina commit 98a1708de1bfa5fe1c490febba850d6043d3c7fa Author: Martin Olsson Date: Wed Apr 22 18:21:29 2009 +0200 trivial: fix typos s/paramter/parameter/ and s/excute/execute/ in documentation and source comments. Signed-off-by: Martin Olsson Signed-off-by: Jiri Kosina commit 6d60f9dfc8d437e914d46fa355c50c695cad24e7 Author: Martin Olsson Date: Tue Apr 7 10:30:24 2009 +0200 trivial: Fix paramater/parameter typo in dmesg and source comments Signed-off-by: Martin Olsson Signed-off-by: Jiri Kosina commit 2f0accc13520b2644b85f80aedce10d10d88b0ca Author: Johannes Berg Date: Wed Jun 10 16:50:29 2009 +0200 cfg80211: fix rfkill locking problem rfkill currently requires a global lock within the rfkill_register() function, and holds that lock over calls to the set_block() methods. This means that we cannot hold a lock around rfkill_register() that we also require in set_block(), directly or indirectly. Fix cfg80211 to register rfkill outside the block locked by its global lock. Much of what cfg80211 does in the locked block doesn't need to be locked anyway. Reported-by: Vasanthakumar Thiagarajan Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4e751843d406a4d0471c207872b9e24957de8357 Author: Johannes Berg Date: Wed Jun 10 15:16:52 2009 +0200 mac80211: disable PS while probing AP When associated, but probing the AP because we detected beacon loss, we need to disable powersave to be able to receive the probe response. Change the code to do that by checking whether we're trying to probe when determining the possibility of going into PS, and recalculate the PS ability at the necessary spots. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 43f7853180ed522944b3b1d4979cdb9f2b103ca3 Author: Luis R. Rodriguez Date: Wed Jun 10 15:16:15 2009 +0200 mac80211: disable moving between PS modes during scan We don't want to trigger moving between PS mode during scan, because then we will sometimes end up sending nullfunc frames during scan. We're supposed to only send one prior to scan and after scan. This fixes an oops which occured due to an assert in ath9k: http://marc.info/?l=linux-wireless&m=124277331319024 The assert was happening because the rate control algorithm figures it should find at least one valid dual stream or single stream rate. Since we allow mac80211 to send nullfunc frames during scan and dynamic PS was enabled at times we ended up trying to send nullfunc frames for the target sta on the wrong band for which we have no valid rate to communicate with it. This breaks the assumptions in rate control. We determine we also need to disable moving between PS modes when not associated so lets just add that now as well, and we should not have a ps_sdata when that interface cannot actually go into PS because it's not associated. Signed-off-by: Luis R. Rodriguez Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a6ae0716e5c3b5f9dbe5ed8f473a6c7b89692365 Author: Bob Copeland Date: Tue Jun 9 23:43:11 2009 -0400 ath5k: minor rfkill cleanup Always enable rfkill since the ifdefs in the code is not really worth the Kconfig option. Also fix a few code style things, and remove the usage of the ah_gpio[] array so we can remove it later. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 27004b10ce56985d8a010ce966af179f1b34193f Author: Johannes Berg Date: Tue Jun 9 19:48:25 2009 +0200 mac80211: clean up return value of __ieee80211_parse_tx_radiotap The return type has more than two values, but it can validly only ever return TX_DROP and TX_CONTINUE, so use a bool instead of ieee80211_tx_result. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0bffe40f21e2ddc5215b1faec4e8dbbc215e7d4d Author: Johannes Berg Date: Tue Jun 9 16:18:32 2009 +0200 mac80211: don't use master netdev name Always use the wiphy name instead. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5eae6592e9bdc989151171828ee97e0ad9e1b1ac Author: Vasanthakumar Thiagarajan Date: Tue Jun 9 15:28:21 2009 +0530 ath9k: Fix tx stuck when connected to aggr disabled HT AP This patch along with my previous patch in mac80211 "Fix the way ADDBA count..", fixes hang in tx when connected to an HT AP which rejects/times out on addba req. AGGR_ADDBA_PROGRESS should be cleared in aggr state when addba negotiation is terminated due to either addba response is timed out or addba is denied by the AP. With out clearing this bit, all frames are queued onto s/w queue for getting tx'd as aggr and will never be scheduled onto hw queue. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 736708bd04b7a8941fddda32211982cab5d14431 Author: Vasanthakumar Thiagarajan Date: Tue Jun 9 14:11:46 2009 +0530 mac80211: Fix the way ADDBA request count being modified addba_req_num[tid] is supposed to have the count of consecutive addba request attempts on 'tid' which failed. This count is checked against a retry threshold (3 times) before starting the addba negotiation. This patch fixes the way this addba count is incremented/reset and thereby avoids indefinite addba attempts. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 558f6d3229ddb9f11ca4ffee0439046c283882ff Author: Luis R. Rodriguez Date: Mon Jun 8 18:54:37 2009 -0700 cfg80211: fix for duplicate response for driver reg request As Pavel puts userspace can be stupid and should not cause kernel crashes. In this case Pavel was able to find a crash here but unable to reproduce. Either way lets deal with this. This should fix: ------------[ cut here ]------------ kernel BUG at /home/proski/src/linux-2.6/net/wireless/reg.c:2132! Oops: Exception in kernel mode, sig: 5 [#1] PowerMac Modules linked in: ath5k ath [last unloaded: scsi_wait_scan] NIP: c02f3eac LR: c02f3d08 CTR: 00000000 REGS: ef107aa0 TRAP: 0700 Not tainted (2.6.30-rc8-wl) MSR: 00029032 CR: 88002442 XER: 20000000 TASK = ef84acb0[834] 'crda' THREAD: ef106000 GPR00: ef953840 ef107b50 ef84acb0 ef1380bc 00000006 c035a5c8 ef107b90 c035a5c8 GPR08: 00080005 efb68980 c0445628 ef130004 28002422 10019ce0 10012d3c 00000001 GPR16: 1070b2ac 00000005 48023558 1070b380 4802304c 00000000 ef107ddc c035a5c8 GPR24: ef107b78 c0443350 ef8bcb00 00000005 ef138080 c04a6a70 c04a0000 ef8bcb00 NIP [c02f3eac] set_regdom+0x4c4/0x4ec LR [c02f3d08] set_regdom+0x320/0x4ec Call Trace: [ef107b50] [c02f3d08] set_regdom+0x320/0x4ec (unreliable) [ef107b70] [c02f9d10] nl80211_set_reg+0x140/0x2d0 [ef107bc0] [c02aa2b8] genl_rcv_msg+0x204/0x228 [ef107c10] [c02a97cc] netlink_rcv_skb+0xe8/0x10c [ef107c30] [c02aa094] genl_rcv+0x3c/0x5c [ef107c40] [c02a9050] netlink_unicast+0x308/0x36c [ef107c80] [c02a92bc] netlink_sendmsg+0x208/0x2f0 [ef107cd0] [c0282048] sock_sendmsg+0xac/0xe4 [ef107db0] [c02822b4] sys_sendmsg+0x234/0x2d8 [ef107f00] [c0283a88] sys_socketcall+0x108/0x258 [ef107f40] [c0012790] ret_from_syscall+0x0/0x38 Signed-off-by: John W. Linville commit 403a3a136122457165321e90b7569a321cc9ac12 Author: Michael Buesch Date: Mon Jun 8 21:04:57 2009 +0200 b43: Add fw capabilities Add automagic feature flags, so the firmware can tell the driver about supported features and the driver can switch features on/off as needed. Signed-off-by: Michael Buesch Signed-off-by: Stefan Lippers-Hollmann Tested-by: Stefan Lippers-Hollmann Signed-off-by: John W. Linville commit 908209c160da8ecb68052111972b7a21310eac3f Author: Alan Jenkins Date: Mon Jun 8 13:12:23 2009 +0100 rfkill: don't impose global states on resume (just restore the previous states) Once rfkill-input is disabled, the "global" states will only be used as default initial states. Since the states will always be the same after resume, we shouldn't generate events on resume. Signed-off-by: Alan Jenkins Signed-off-by: John W. Linville commit b3fa1329eaf2a7b97124dacf5b663fd51346ac19 Author: Alan Jenkins Date: Mon Jun 8 13:27:27 2009 +0100 rfkill: remove set_global_sw_state rfkill_set_global_sw_state() (previously rfkill_set_default()) will no longer be exported by the rewritten rfkill core. Instead, platform drivers which can provide persistent soft-rfkill state across power-down/reboot should indicate their initial state by calling rfkill_set_sw_state() before registration. Otherwise, they will be initialized to a default value during registration by a set_block call. We remove existing calls to rfkill_set_sw_state() which happen before registration, since these had no effect in the old model. If these drivers do have persistent state, the calls can be put back (subject to testing :-). This affects hp-wmi and acer-wmi. Drivers with persistent state will affect the global state only if rfkill-input is enabled. This is required, otherwise booting with wireless soft-blocked and pressing the wireless-toggle key once would have no apparent effect. This special case will be removed in future along with rfkill-input, in favour of a more flexible userspace daemon (see Documentation/feature-removal-schedule.txt). Now rfkill_global_states[n].def is only used to preserve global states over EPO, it is renamed to ".sav". Signed-off-by: Alan Jenkins Acked-by: Henrique de Moraes Holschuh Signed-off-by: John W. Linville commit 8f77f3849cc3ae2d6df9301785a3d316ea7d7ee1 Author: Johannes Berg Date: Sun Jun 7 21:58:37 2009 +0200 mac80211: do not pass PS frames out of mac80211 again In order to handle powersave frames properly we had needed to pass these out to the device queues again, and introduce the skb->requeue bit. This, however, also has unnecessary overhead by needing to 'clean up' already tried frames, and this clean-up code is also buggy when software encryption is used. Instead of sending the frames via the master netdev queue again, simply put them into the pending queue. This also fixes a problem where frames for that particular station could be reordered when some were still on the software queues and older ones are re-injected into the software queue after them. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b91d0e364077fad401454699143ad6a78902c20a Author: Johannes Berg Date: Mon Jun 8 08:14:28 2009 +0200 rfkill: remove input Kconfig Now that we added the ioctl, there's no need to ask the user to configure this. We will keep it enabled for now, and eventually swap the default to n. Also let embedded users select it only if they need it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f41f3f373dd72344c65d801d6381fe83ef3a2c54 Author: Johannes Berg Date: Sun Jun 7 12:30:34 2009 -0500 b43/legacy: port to cfg80211 rfkill This ports the b43/legacy rfkill code to the new API offered by cfg80211 and thus removes a lot of useless stuff. Signed-off-by: Johannes Berg Signed-off-by: Larry Finger Cc: Michael Buesch Signed-off-by: John W. Linville commit e6a3b61681dcb963e6465ffbc4330b44824f35e3 Author: Tobias Doerffel Date: Tue Jun 9 17:33:27 2009 +0200 ath5k: added cfg80211 based rfkill support This patch introduces initial rfkill support for the ath5k driver based on rfkill support in the cfg80211 framework. All rfkill related code is separated into newly created rfkill.c. Changes to existing code are minimal: * added a new data structure ath5k_rfkill to the ath5k_softc structure * inserted calls to HW rfkill init/deinit routines * ath5k_intr() has been extended to handle AR5K_INT_GPIO interrupts Signed-off-by: John W. Linville commit 207ee1621722876bb79828689582bf77fd1be200 Author: Johannes Berg Date: Sun Jun 7 12:26:52 2009 +0200 rfkill: print events when input handler is disabled/enabled It is useful for debugging when we know if something disabled the in-kernel rfkill input handler. Signed-off-by: Johannes Berg Acked-by: Marcel Holtmann Signed-off-by: John W. Linville commit 9b9c5aaeedfda256ed77094303e2a7242c3290da Author: Christian Lamparter Date: Sat Jun 6 05:07:23 2009 +0200 ar9170: xmit code revamp This patch is a back-port from aggregation testing code. In the past, we didn't limit the amount of active tx urbs. However, ar9170 only has a limited buffer reserved for pending data frames. This wasn't much of a problem with the slower 802.11b/g. We simply stopped the full queue and moved on to something different in the mean time. But - as you guessed it - this simple approach stands in way for a decent aggregation implementation. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 2543a0c4c0fde46f9f206cec1e1cf951a2a63a66 Author: Johannes Berg Date: Fri Jun 5 11:47:43 2009 +0200 ar9170: interpret firmware debug commands This adds new commands that the original firmware will not send but we can use them to debug firmware. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit dacb6f1d8fa5200efc4e609fe63a750b960993b6 Author: matthieu castet Date: Thu Jun 4 22:16:18 2009 +0200 mac80211 : fix unaligned rx skb mac80211 is checking is the skb is aligned on 32 bit boundary. But it is checking against ethernet header, whereas Linux expect IP header aligned. And ethernet ether size is 6*2+2=14, so aligning ethernet header make IP header unaligned. Signed-off-by: Matthieu CASTET Signed-off-by: John W. Linville commit b52a033c2c501a8015df3727a4bd73389ccb1641 Author: Matthieu CASTET Date: Thu Jun 4 23:18:33 2009 +0200 b43: Fix possible unaligned u32 access Fix possible unaligned u32 access in b43_generate_plcp_hdr(). Unaligned data is read/write with a u32 pointer instead of using the packed structure. Some versions of gcc ignore the "packed" attribute, if the structure element is accessed through a local pointer. Signed-off-by: Matthieu CASTET Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 5ee58d7e6ad019675b4090582aec4fa1180d8703 Author: Bob Copeland Date: Fri Jun 5 08:21:50 2009 -0400 mac80211: fix minstrel single-rate memory corruption The minstrel rate controller periodically looks up rate indexes in a sampling table. When accessing a specific row and column, minstrel correctly does a bounds check which, on the surface, appears to handle the case where mi->n_rates < 2. However, mi->sample_idx is actually defined as an unsigned, so the right hand side is taken to be a huge positive number when negative, and the check will always fail. Consequently, the RC will overrun the array and cause random memory corruption when communicating with a peer that has only a single rate. The max value of mi->sample_idx is around 25 so casting to int should have no ill effects. Without the change, uptime is a few minutes under load with an AP that has a single hard-coded rate, and both the AP and STA could potentially crash. With the change, both lasted 12 hours with a steady load. Thanks to Ognjen Maric for providing the single-rate clue so I could reproduce this. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=12490 on the regression list (also http://bugzilla.kernel.org/show_bug.cgi?id=13000). Cc: stable@kernel.org Reported-by: Sergey S. Kostyliov Reported-by: Ognjen Maric Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 4d1d49858c0a5a4fb1be4bc7972754cd640245ba Author: Sebastian Andrzej Siewior Date: Thu Jun 4 21:57:03 2009 +0200 net/libertas: remove GPIO-CS handling in SPI interface code This removes the dependency on GPIO framework and lets the SPI host driver handle the chip select. The SPI host driver is required to keep the CS active for the entire message unless cs_change says otherwise. This patch collects the two/three single SPI transfers into a message. Also the delay in read path in case use_dummy_writes are not used is moved into the SPI host driver. Tested-by: Mike Rapoport Tested-by: Andrey Yurovsky Signed-off-by: Sebastian Andrzej Siewior Acked-by: Dan Williams Signed-off-by: John W. Linville commit 582241a08409c89b086774c60b55c1a1706a7e5d Author: Jussi Kivilinna Date: Thu Jun 4 20:13:25 2009 +0300 rndis_wlan: cleanup: rename all rndis_wext* objects to rndis_wlan* Driver used to be named rndis_wext before inclusion to upstream. Since rndis_wlan is being converted to cfg80211, use of rndis_wext* names can be confusing. So rename all rndis_wext to rndis_wlan (as should have been when driver was renamed). Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit aa18294a289548f45ea6a784f008295ccddf6b14 Author: Jussi Kivilinna Date: Thu Jun 4 20:13:19 2009 +0300 rndis_wlan: cleanup: capitalize enum labels Capitalize enum labels as told in Documents/CodingStyle. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit a60e77e5a41330334fd0ca428f18919d1ea6ed62 Author: Johannes Berg Date: Thu Jun 4 18:26:06 2009 +0200 iwlwifi: port to cfg80211 rfkill This ports the iwlwifi rfkill code to the new API offered by cfg80211 and thus removes a lot of useless stuff. The soft- rfkill is completely removed since that is now handled by setting the interfaces down. Signed-off-by: Johannes Berg Tested-by: Reinette Chatre Signed-off-by: John W. Linville commit 1506e30b5f25f6c3357167a18f0e4ae6f5662a28 Author: Johannes Berg Date: Tue Jun 9 17:49:06 2009 -0700 rfkill: include err.h Since we use ERR_PTR and similar macros, we need to include linux/err.h. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 2489e4ea6cfd1c0f3fe839f90363abccbbdb7745 Author: Christian Lamparter Date: Wed Jun 3 22:24:48 2009 +0200 ar9170: remove deprecated code This patch removes code (deprecated by "cfg80211: add rfkill support" ) main.c: In function 'ar9170_op_config': main.c:1306: warning: '__IEEE80211_CONF_CHANGE_RADIO_ENABLED' is deprecated (declared at include/net/mac80211.h:551) and a useless device state. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit c18bd87b65fa5f39abb0ab1b82bca416c23cb6dd Author: Reinette Chatre Date: Wed Jun 3 11:44:12 2009 -0700 iwlwifi: fix comment describing disable_11n Fixing a comment in the code describing this module parameter. The description printed when user runs "modinfo" is correct. Reported-by: Jiajia Zheng Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 13c33a09b3703c2956345482017600434c853889 Author: Wey-Yi Guy Date: Wed Jun 3 11:44:11 2009 -0700 iwlwifi: add value and range define for link quality command Instead of hardcoding the link quality parameters inside the functions, adding #define in iwl-commands.h to shared by different functions. Also include the valid range for number of link quality parameters. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 258c44a0c02a7ffbb9555747008d6bf9a3ea58a0 Author: Mohamed Abbas Date: Wed Jun 3 11:44:10 2009 -0700 iwlagn: delay ict interrupt. Wait until ucode is loaded and driver receive ALIVE_REPLY then switch to ICT interrupt. This ensures we receive all interrupts indicating successful ucode load. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ee5006a19c9e040d715efb75a6f4fa78764869ce Author: Abhijeet Kolekar Date: Wed Jun 3 11:44:09 2009 -0700 iwl3945/iwlwifi: fix led bug when SW rfkill Patch fixes the bug at http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1903 when SW rfkill is invoked by 'iwconfig txpower off', the existing connection disassociates and led off command is sent to the device which returns error as rfkill is 'true'. Patch fixes this by just avoiding sending the led off/on command when disassociated. The main purpose of the led_disassociate callback is to start or stop the blinking. There are three states in led 1) Always on when radio is on 2) Always off when radio is off 3) blink when associated and if there is some traffic. In this callback 'allow_blinking' needs to be set false when associated, as LED will be always on. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d14d44407b9f06e3cf967fcef28ccb780caf0583 Author: Abhijeet Kolekar Date: Wed Jun 3 11:44:08 2009 -0700 iwl3945: port allow skb allocation in tasklet patch Port "iwlcore: Allow skb allocation from tasklet." to 3945 If RX queue becomes empty then we need to restock the queue from tasklet to prevent ucode from starving. A caller to iwl_rx_allocate will decide if allocated buffer should come from GFP_ATOMIC or GFP_KERNEL. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c587de0b8d6e194f7a1719fc6af8a81b4e8916d2 Author: Tomas Winkler Date: Wed Jun 3 11:44:07 2009 -0700 iwlwifi: unify station management This patch unifies 3945 and AGN station management It also removes useless struct iwl_station_mgmt ops and cleanups a bit the interface Signed-off-by: Tomas Winkler Tested-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0aa8204b46e0fb155a98074d53f8b31ca04269b2 Author: Johannes Berg Date: Wed Jun 3 18:30:31 2009 +0200 cfg80211: fix Kconfig for users of cfg80211 * iwm doesn't depend on cfg80211 or wireless extensions * rndis wlan selects cfg80211 - needs to depend * mac80211 selects cfg80211 - needs to depend Signed-off-by: Johannes Berg Acked-by: Randy Dunlap Signed-off-by: John W. Linville commit 2ec2c68c11af95075f29e370970eb97c89234e2e Author: Johannes Berg Date: Wed Jun 3 09:55:29 2009 +0200 rfkill: always init poll delayed work The rfkill core didn't initialise the poll delayed work because it assumed that polling was always done by specifying the poll function. cfg80211, however, would like to start polling only later, which is a valid use case and easy to support, so change rfkill to always initialise the poll delayed work and thus allow starting polling by calling the rfkill_resume_polling() function after registration. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 72828b1b3cabecfce4321877aa526a2bd21acf0c Author: Bob Copeland Date: Tue Jun 2 23:03:06 2009 -0400 ath5k: disable beacon interrupt when interface is down When we remove the active interface, there's no need to continue sending beacons; doing so would cause a null pointer deref in ieee80211_beacon_get(). Disable the interrupt in remove_interface and add a WARN_ON(!vif) in case there are other instances lurking. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 894df1cbc376310163d41c50c891db41296056bf Author: Luis R. Rodriguez Date: Tue Jun 2 15:43:25 2009 -0700 mac80211: removed unused variable in ieee80211_tx() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7e189a12c246f55fe087efe345fe5f4cbe0be545 Author: Luis R. Rodriguez Date: Tue Jun 2 18:38:14 2009 -0400 mac80211: extend sta kdoc - explain when they are added Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 60fd2b67014440091770ac5738301c7fa4c4159c Author: Luis R. Rodriguez Date: Tue Jun 2 16:31:10 2009 -0400 cfg80211: make ieee80211_get_mesh_hdrlen() static Fixes spares warning: net/wireless/util.c:261:5: warning: symbol 'ieee80211_get_mesh_hdrlen' was not declared. Should it be static? Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e03e5ffd8d3327d23d76be5d63cfbbb537b1af59 Author: Luis R. Rodriguez Date: Tue Jun 2 16:30:56 2009 -0400 ath: make regulatory parsing more verbose on debug This should help when reviewing issues regarding regulatory domain on ath5k/ath9k/ar9170. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 581f725ccd7e697074aa057fa86bf99b54052c95 Author: Vasanthakumar Thiagarajan Date: Tue Jun 2 19:28:55 2009 +0530 ath9k: Fix write callback of 'debug' which configures debug mask Handle error condition on copy_from_user() properly and make sure a NUL terminated char[] is sent to strict_strtoul() for proper conversion. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 76963bb602ba91927130a0140d5757a5969e08ac Author: Johannes Berg Date: Tue Jun 2 13:01:42 2009 +0200 iwm: port to new cfg80211 rfkill Which means removing all rfkill code since it only does soft-kill which cfg80211 will now handle in exactly the same way the driver did. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1f87f7d3a3b42b20f34cb03f0fd1a41c3d0e27f3 Author: Johannes Berg Date: Tue Jun 2 13:01:41 2009 +0200 cfg80211: add rfkill support To be easier on drivers and users, have cfg80211 register an rfkill structure that drivers can access. When soft-killed, simply take down all interfaces; when hard-killed the driver needs to notify us and we will take down the interfaces after the fact. While rfkilled, interfaces cannot be set UP. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6081162e2ed78dfcf149b076b047078ab1445cc2 Author: Johannes Berg Date: Tue Jun 2 13:01:40 2009 +0200 rfkill: add function to query state Sometimes it is necessary to know how the state is, and it is easier to query rfkill than keep track of it somewhere else, so add a function for that. This could later be expanded to return hard/soft block, but so far that isn't necessary. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7643a2c3fcc13cd6fbd731f214463547383418ae Author: Johannes Berg Date: Tue Jun 2 13:01:39 2009 +0200 cfg80211: move txpower wext from mac80211 This patch introduces new cfg80211 API to set the TX power via cfg80211, puts the wext code into cfg80211 and updates mac80211 to use all that. The -ENETDOWN bits are a hack but will go away soon. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c64fb01627e24725d1f9d535e4426475a4415753 Author: Johannes Berg Date: Tue Jun 2 13:01:38 2009 +0200 rfkill: create useful userspace interface The new code added by this patch will make rfkill create a misc character device /dev/rfkill that userspace can use to control rfkill soft blocks and get status of devices as well as events when the status changes. Using it is very simple -- when you open it you can read a number of times to get the initial state, and every further read blocks (you can poll) on getting the next event from the kernel. The same structure you read is also used when writing to it to change the soft block of a given device, all devices of a given type, or all devices. This also makes CONFIG_RFKILL_INPUT selectable again in order to be able to test without it present since its functionality can now be replaced by userspace entirely and distros and users may not want the input part of rfkill interfering with their userspace code. We will also write a userspace daemon to handle all that and consequently add the input code to the feature removal schedule. In order to have rfkilld support both kernels with and without CONFIG_RFKILL_INPUT (or new kernels after its eventual removal) we also add an ioctl (that only exists if rfkill-input is present) to disable rfkill-input. It is not very efficient, but at least gives the correct behaviour in all cases. Signed-off-by: Johannes Berg Acked-by: Marcel Holtmann Signed-off-by: John W. Linville commit 19d337dff95cbf76edd3ad95c0cee2732c3e1ec5 Author: Johannes Berg Date: Tue Jun 2 13:01:37 2009 +0200 rfkill: rewrite This patch completely rewrites the rfkill core to address the following deficiencies: * all rfkill drivers need to implement polling where necessary rather than having one central implementation * updating the rfkill state cannot be done from arbitrary contexts, forcing drivers to use schedule_work and requiring lots of code * rfkill drivers need to keep track of soft/hard blocked internally -- the core should do this * the rfkill API has many unexpected quirks, for example being asymmetric wrt. alloc/free and register/unregister * rfkill can call back into a driver from within a function the driver called -- this is prone to deadlocks and generally should be avoided * rfkill-input pointlessly is a separate module * drivers need to #ifdef rfkill functions (unless they want to depend on or select RFKILL) -- rfkill should provide inlines that do nothing if it isn't compiled in * the rfkill structure is not opaque -- drivers need to initialise it correctly (lots of sanity checking code required) -- instead force drivers to pass the right variables to rfkill_alloc() * the documentation is hard to read because it always assumes the reader is completely clueless and contains way TOO MANY CAPS * the rfkill code needlessly uses a lot of locks and atomic operations in locked sections * fix LED trigger to actually change the LED when the radio state changes -- this wasn't done before Tested-by: Alan Jenkins Signed-off-by: Henrique de Moraes Holschuh [thinkpad] Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0f6399c4c525b518644a9b09f8d6fb125a418c4d Author: Bob Copeland Date: Tue Jun 2 00:05:04 2009 -0400 nl80211: use GFP_ATOMIC for michael mic failure message nl80211_michael_mic_failure can be called in atomic context but does a GFP_KERNEL allocation. Fixes the error below: [ 126.793225] BUG: sleeping function called from invalid context at mm/slab.c:3055 [ 126.793234] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper [ 126.793241] 2 locks held by swapper/0: [ 126.793246] #0: (&sc->rxbuflock){+.-.+.}, at: [] ath5k_tasklet_rx+0x34/0x55e [ath5k] [ 126.793294] #1: (rcu_read_lock){.+.+.+}, at: [] __ieee80211_rx+0x7e/0x563 [mac80211] [ 126.793342] Pid: 0, comm: swapper Not tainted 2.6.30-rc7-wl #124 [ 126.793347] Call Trace: [ 126.793361] [] ? __debug_show_held_locks+0x1e/0x20 [ 126.793380] [] __might_sleep+0x100/0x107 [ 126.793386] [] kmem_cache_alloc+0x35/0x170 [ 126.793393] [] ? __alloc_skb+0x2e/0x117 [ 126.793397] [] ? mark_held_locks+0x43/0x5b [ 126.793402] [] __alloc_skb+0x2e/0x117 [ 126.793419] [] nl80211_michael_mic_failure+0x2a/0x1fa [cfg80211] [ 126.793425] [] ? trace_hardirqs_on_caller+0xf6/0x130 [ 126.793430] [] ? trace_hardirqs_on+0xb/0xd [ 126.793444] [] cfg80211_michael_mic_failure+0x30/0x38 [cfg80211] [ 126.793463] [] mac80211_ev_michael_mic_failure+0xfd/0x108 [mac80211] [ 126.793480] [] ieee80211_rx_h_michael_mic_verify+0xd4/0x117 [mac80211] [ 126.793499] [] ieee80211_invoke_rx_handlers+0xdde/0x1963 [mac80211] [ 126.793505] [] ? sched_clock+0x3f/0x64 [ 126.793511] [] ? sched_clock+0x3f/0x64 [ 126.793516] [] ? trace_hardirqs_off+0xb/0xd [ 126.793521] [] ? sched_clock+0x3f/0x64 [ 126.793526] [] ? __lock_acquire+0x62c/0x1271 [ 126.793545] [] __ieee80211_rx_handle_packet+0x543/0x564 [mac80211] [ 126.793564] [] __ieee80211_rx+0x4e2/0x563 [mac80211] [ 126.793577] [] ath5k_tasklet_rx+0x4e4/0x55e [ath5k] [ 126.793583] [] ? restore_nocheck_notrace+0x0/0xe [ 126.793589] [] tasklet_action+0x92/0xe5 [ 126.793594] [] __do_softirq+0xb1/0x182 [ 126.793599] [] do_softirq+0x30/0x48 [ 126.793603] [] irq_exit+0x3d/0x74 [ 126.793609] [] do_IRQ+0x76/0x8c [ 126.793613] [] common_interrupt+0x2e/0x34 [ 126.793618] [] ? timer_list_show+0x277/0x939 [ 126.793630] [] ? acpi_idle_enter_bm+0x266/0x291 [processor] [ 126.793636] [] cpuidle_idle_call+0x6a/0x9c [ 126.793640] [] cpu_idle+0x53/0x87 [ 126.793645] [] rest_init+0x6c/0x6e [ 126.793651] [] start_kernel+0x286/0x28b [ 126.793656] [] __init_begin+0x37/0x3c Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 6bc61f4d8e2fa3d54017c29b58603e8771158a25 Author: Bing Zhao Date: Mon Jun 1 18:04:36 2009 -0700 libertas: improve function init/shutdown handling for SD8688 This patch is to incorporate Dan Williams' comments for commit: "libertas: implement function init/shutdown commands for SD8688" 1. remove fn_init_required and fn_shutdown_required variables from lbs_private structure. If required, __lbs_cmd() will be called directly to send function init/shutdown command for SD8688 in if_sdio_probe() or if_sdio_remove() callback. 2. add global variable "user_rmmod" to distinguish between the module removal case and the card removal case. This flag will be checked in if_sdio_remove() against SD8688 card to determine whether or not the function shutdown command needs to be sent. 3. remove "card" from if_sdio_model structure as it cannot store card pointers for multiple cards. Besides, it's no longer needed to store the "card" pointer with changes #1 & #2 above. Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit 328d84fb3614d006254c990a6224ce437147a5ac Author: Samuel Ortiz Date: Wed May 27 10:12:51 2009 +0200 wireless/p54: prepare for FIRMWARE_NAME_MAX removal We're going to remove the FIRMWARE_NAME_MAX definition in order to avoid any firmware name length restriction. This patch gets rid of the statically allocated p54usb firmware string, and replaces them with const char pointers. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 939cab83ea592fcf4d854563d6c71d813a691872 Author: Samuel Ortiz Date: Tue Jun 2 15:52:20 2009 +0800 iwmc3200wifi: shrink calibration lmac name iwmc3200wifi: trim down calibration firmware name The patch trims down iwmc3200wifi calibration firmware name from iwmc3200wifi-lmac-calib-sdio.bin to iwmc3200wifi-calib-sdio.bin. We can shorten the firmware name because all calibration is done by LMAC. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 6d7db193f2097d2f12fdc6b2300439a91a3196be Author: Christian Lamparter Date: Mon Jun 1 22:49:25 2009 +0200 ar9170: cancel led worker properly on exit "[PATCH 3/4 v2] ar9170: fix LED power state handling" revealed a bug which can cause a ugly crash. The delayed worker is canceled before the LED class functions are unregistered... So, if something manages to update the LEDs while unregister routine is running the timer could fire _after_ the module has been unloaded. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 66d008139c61d610f3ade9b46ad610e2cd277fb9 Author: Christian Lamparter Date: Thu May 28 17:04:27 2009 +0200 ar9170usb: more minor fixes This patch contains a few more mostly random fixes for the USB front-end. 1. handle irq command response, instead of printing it to the console. 2. remove fixed FIXME. (real fix: "ar9170usb: reset device on resume". ) 3. some more one-liner. - get rid of a useless "return;" - add a few branch prediction hints in hot-paths etc. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit b55d6bcf9b7082ae613e5d532608abcd409164ca Author: Christian Lamparter Date: Sat May 23 20:31:21 2009 +0200 ar9170: fix lockdep warning on hibernate This patch takes care of Johannes' deadlock report by moving the mutex_lock right after cancel_work_sync in ar9170_op_stop. Besides, the janitor does not need to hold the mutex anymore, so this extra lines can be removed as well. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 2431fe9a4b43ccf03589fa661662da6bfbd97282 Author: Christian Lamparter Date: Mon May 25 21:51:19 2009 +0200 ar9170: fix LED power state handling This patch fixes a minor visual bug in the led code, which left the LED in the wrong power state when it was toggled in a _unexpected_ way (e.g: enabling the LED twice). Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 95cf8769bba6ea595994f786ea63f7e2948133de Author: Christian Lamparter Date: Sat May 23 20:28:38 2009 +0200 ar9170: kill duplicated HT feature flag This patch removes a redundant flag. .cap = IEEE80211_HT_CAP_MAX_AMSDU | \ > IEEE80211_HT_CAP_SM_PS | \ < [...] \ > IEEE80211_HT_CAP_SM_PS, \ < .ampdu_factor = 3, \ Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 864cc02e7c0ed9a83be0c35c05df1941abcc792d Author: Christian Lamparter Date: Sat May 23 20:28:21 2009 +0200 ar9170: use bitop macros for tx filter flags This patch fixes a bug in configure_filter's (sub-)routines. We never really cleared the flags once we updated the hardware state, so we wasted our resources by applying already active settings. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 29ceff5d58afbb2c98bb748057788f02b8db20e5 Author: Christian Lamparter Date: Mon Jun 1 21:42:01 2009 +0200 ar9170: introduce functions for MAC programming This patch introduces 3 new function which are used to update the MAC state, whenever needed... e.g: after a band switch. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit d7433390e49152101c1b31c08e38caf2a05a1169 Author: Christian Lamparter Date: Mon Jun 1 21:41:50 2009 +0200 ar9170: 40mhz fixes This patch replace a few constant magics which may affected the device when operating in a 40MHz channel. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit b9ad462e34b6eb8380c8534684326bb395b29c9f Author: Christian Lamparter Date: Mon Jun 1 21:41:36 2009 +0200 ar9170: update hardware definitions This patch only contains a few uncritical updates for the hardware definition header. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit f46f0dc3f1e7bda2621617d5a379f8983ad1d5f8 Author: Christian Lamparter Date: Mon Jun 1 21:41:31 2009 +0200 ar9170: fix beacon plcp settings This patch fixes a simple copy & paste error that affected beacon transmission in 802.11a mode. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 4c4c671aea16d2795f29c7a369518c3c36e15d2a Author: Johannes Berg Date: Mon Jun 1 14:29:52 2009 +0200 mac80211_hwsim: remove deprecated radio_enabled This removes the use of the deprecated radio_enabled setting and code associated with that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 729e9c7663190d71fe5e29831634df80f38199c1 Author: Luis R. Rodriguez Date: Sun May 31 18:24:34 2009 -0400 cfg80211: fix for duplicate userspace replies This fixes an incorrect assumption (BUG_ON) made in cfg80211 when handling country IE regulatory requests. The assumption was that we won't try to call_crda() twice for the same event and therefore we will not recieve two replies through nl80211 for the regulatory request. As it turns out it is true we don't call_crda() twice for the same event, however, kobject_uevent_env() *might* send the udev event twice and/or userspace can simply process the udev event twice. We remove the BUG_ON() and simply ignore the duplicate request. For details refer to this thread: http://marc.info/?l=linux-wireless&m=124149987921337&w=2 Cc: stable@kernel.org Reported-by: Maxim Levitsky Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bdf6d32f933bf28dfdca325281ee5266c753dc67 Author: Luis R. Rodriguez Date: Thu May 28 17:36:05 2009 -0400 ar9170: add AVM FRITZ devices This adds: USB 0x057C:0x8401 AVM FRITZ!WLAN USB Stick N USB 0x057C:0x8402 AVM FRITZ!WLAN USB Stick N 2.4 These devices require the 1-stage firmware, if not present we don't continue. Cc: Peter Grabienski Cc: Stephen Chen Cc: Michael Fortin Cc: Johnny Cheng Cc: Yuan-Gu Wei Cc: Joerg Albert Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c768b58d62d3106f0f670d35d1e7820c14ba769a Author: Luis R. Rodriguez Date: Thu May 28 17:36:04 2009 -0400 ar9170: add support for 1-stage firmware You can get the stage 1 firmware from here: http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170/ar9170.fw md5sum: 34feec4ec0eae3bb92c7c1ea2dfb4530 sha1sum: 6e5250498b815c2940d97242de31e054ae44e079 Its license: http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170/LICENSE This is a new firmware, tested with WNDA3100. Cc: Peter Grabienski Cc: Stephen Chen Cc: Michael Fortin Cc: Johnny Cheng Cc: Yuan-Gu Wei Cc: Joerg Albert Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 546256fbd06d70a87381020ea8553fb78c9abf43 Author: Jouni Malinen Date: Thu May 28 19:25:28 2009 +0300 ath9k: Add sanity check for beacon_int in adhoc/mesh case It looks like mac80211 can request the driver to start beaconing with a beacon interval of zero in some cases (at least for mesh point). This does not sound correct and something may need to be fixed in mac80211. However, taken into account the unpleasantness of getting stuck in an infinite busy loop with rtnl_lock held, let's add a quick workaround in the driver to avoid the worst symptom while someone more familiar with the mesh implementation can figure out what should be done with mac80211 as far as beacon interval configuration is concerned. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 73ca5203366235f8a43e490767284ba8cfd8c479 Author: Bob Copeland Date: Thu May 28 10:27:37 2009 -0400 ath5k: remove conf->beacon_int usage ieee80211_conf->beacon_int was deprecated and removed in a cleanup patch, however it was accidentally added back to ath5k in the change "ath5k: Allow user/driver to set txpower." Remove it once more, fixing the following warning: [13091.968902] WARNING: at drivers/net/wireless/ath/ath5k/base.c:2167 warn_slowpath_null+0x15/0x1a() [13091.968906] Hardware name: MacBook1,1 [13091.968909] Modules linked in: usb_storage fuse i915 drm af_packet acpi_cpufreq binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_seq_dummy hid_apple arc4 ecb snd_seq_oss snd_seq_midi_event usbhid snd_seq ath5k mac80211 appletouch snd_seq_device snd_pcm_oss snd_mixer_oss sky2 snd_pcm ath processor cfg80211 snd_timer sg ohci1394 snd uhci_hcd bitrev ieee1394 joydev ehci_hcd crc32 snd_page_alloc button ac thermal battery sr_mod applesmc cdrom evdev input_polldev unix [last unloaded: microcode] [13091.968985] Pid: 2132, comm: phy0 Tainted: G W 2.6.30-rc5-wl #118 [13091.968988] Call Trace: [13091.968994] [] warn_slowpath_fmt+0x77/0xa6 [13091.969003] [] ? _spin_unlock+0x2c/0x41 [13091.969008] [] ? _spin_lock_irqsave+0x15/0x69 [13091.969012] [] ? _spin_unlock_irqrestore+0x34/0x5d [13091.969019] [] ? trace_hardirqs_off+0xb/0xd [13091.969024] [] ? _spin_unlock_irqrestore+0x34/0x5d [13091.969029] [] ? trace_hardirqs_off+0xb/0xd [13091.969034] [] ? _spin_unlock_irqrestore+0x34/0x5d [13091.969039] [] warn_slowpath_null+0x15/0x1a [13091.969054] [] ath5k_beacon_update_timers+0x44/0x27f [ath5k] [13091.969059] [] ? vprintk+0x2dd/0x312 [13091.969063] [] ? release_console_sem+0x1a6/0x1d3 [13091.969076] [] ath5k_reset_tsf+0x1d/0x2c [ath5k] [13091.969095] [] __ieee80211_sta_join_ibss+0x35/0x3aa [mac80211] [13091.969102] [] ? extract_entropy+0x47/0x8a [13091.969121] [] ieee80211_sta_find_ibss+0x2de/0x32f [mac80211] [13091.969126] [] ? mutex_lock_nested+0x28b/0x2a5 [13091.969145] [] ? ieee80211_ibss_notify_scan_completed+0x1c/0x6f [mac80211] [13091.969164] [] ieee80211_ibss_notify_scan_completed+0x57/0x6f [mac80211] [13091.969182] [] ieee80211_scan_completed+0x31a/0x33f [mac80211] [13091.969201] [] ieee80211_scan_work+0xcb/0x18b [mac80211] [13091.969207] [] worker_thread+0x1b1/0x28e [13091.969212] [] ? worker_thread+0x16c/0x28e [13091.969230] [] ? ieee80211_scan_work+0x0/0x18b [mac80211] [13091.969237] [] ? autoremove_wake_function+0x0/0x38 [13091.969242] [] ? worker_thread+0x0/0x28e [13091.969246] [] kthread+0x4a/0x70 [13091.971460] [] ? kthread+0x0/0x70 [13091.971467] [] kernel_thread_helper+0x7/0x10 [13091.971470] ---[ end trace 8defaa5d15c50cef ]--- Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 86ab04c8c1df51df7d6d3709da546e0163ac856b Author: Luis R. Rodriguez Date: Wed May 27 22:56:05 2009 -0400 mac80211: handle -EALREADY on cfg80211 op assoc req When the SME requests to associate to an open AP ieee80211_sta_set_extra_ie() can be called with zero IE length. When this happens or when the extra IE has already been set -EALREADY is passed down and the supplicant will complain that the operation is already in progress and it will not let us associate. We correct this by treating -EALREADY from ieee80211_sta_set_extra_ie() as a success just as we do for wext. Cc: Shan.Palanisamy@Atheros.com Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 2c5b9e511fee1a856ffe6332e15c72a20d2c72f6 Author: Cliff Cai Date: Wed May 27 14:03:09 2009 -0400 wireless: libertas: fix unaligned accesses Signed-off-by: Cliff Cai Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu Acked-by: Dan Williams Signed-off-by: John W. Linville commit 2493928e4dbefa1869413cf24b7f605b9b69d0d2 Author: Jeff Hansen Date: Wed May 27 12:48:29 2009 +0000 ath9k: Add "debug" file to debugfs This patch adds the debug file to the ath9k debugfs, which lets you modify the debug_mask at runtime, without having to reload the ath9k module. Signed-off-by: Jeff Hansen Signed-off-by: John W. Linville commit bedf087af96a24861d09586ac25c26691300ff4c Author: Jeff Hansen Date: Wed May 27 12:48:28 2009 +0000 ath9k: Combine legacy and 11n rc statistics This patch combines the legacy and 11n rcstats into one, using the normal rate table indices instead of two separate indices for each mode. Legacy rates also get all of the PER and retry information, now, too. Signed-off-by: Jeff Hansen Signed-off-by: John W. Linville commit b74444f8a9039603715973a56df588a5d800c4ef Author: Jeff Hansen Date: Wed May 27 12:48:27 2009 +0000 ath9k: Reset SC_OP_TSF_RESET flag after stuck beacon I have a TrendNet 652-BRP running OpenWRT + ath9k very well. The only problem is that the beacon gets stuck maybe once a day. After Vasanthakumar Thiagarajan's "ath9k: cleanup beacon parameters configuration" patch, ath9k would nearly re-configure the beacons after it detected the stuck beacon, and did a reset. But it would fail the SC_OP_TSF_RESET check in ath_beacon_config_ap. This patch gets the beacon fully reconfigured after the reset. Signed-off-by: Jeff Hansen Signed-off-by: John W. Linville commit 034d655ee7b79a2f48ba4c2b620d2864a6e0aa14 Author: Johannes Berg Date: Wed May 27 10:35:29 2009 +0200 cfg80211: disallow interfering with stations on non-AP (part 2) On non-AP interfaces userspace has no business interfering with the station management, this can confuse mac80211 (and other drivers probably wouldn't support it anyway). Allow adding and removing stations only on AP interfaces. (Reconcile this w/ previous version of patch posted with same subject... -- JWL) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7ba10a8efe501e26d995aa9b6dc13395518a87e4 Author: Johannes Berg Date: Wed May 27 09:41:06 2009 +0200 mac80211: fix transposed min/max CW values I accidentally transposed these in the patch that "fixed" the defaults, leading to extremely low throughput because of the huge min CW. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1bb563334858f48f65b58bab6d10b54080f4ee42 Author: Randy Dunlap Date: Tue May 26 12:17:52 2009 -0700 iwmc3200wifi: fix printk format Fix printk format for size_t variable: drivers/net/wireless/iwmc3200wifi/fw.c:75: warning: format '%d' expects type 'int', but argument 4 has type 'size_t' Signed-off-by: Randy Dunlap Cc: ilw@linux.intel.com Acked-by: Samuel Ortiz Signed-off-by: John W. Linville commit b63b0ea2c18bba44c934ec619ba47488553c3aa3 Author: Samuel Ortiz Date: Tue May 26 11:10:46 2009 +0800 iwmc3200wifi: fix fragmentation threshold setting We were sending the fragmentation threshold value to the wrong table, causing an LMAC assert when setting it from wext. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit d651ae32789cabfb78bdd1f3467bf034ae267d68 Author: Rami Rosen Date: Sun May 24 20:43:50 2009 +0300 iwlwifi: avoid build warning in iwl-core. When building when CONFIG_IWLWIFI_DEBUG is not set, we get the following warning: /work/src/w/drivers/net/wireless/iwlwifi/iwl-core.c: In function ‘iwl_isr’: /work/src/w/drivers/net/wireless/iwlwifi/iwl-core.c:1707: warning: unused variable ‘inta_fh’ This patch avoids this warning by adding #ifdef CONFIG_IWLWIFI_DEBUG before the declaration of inta_fh in iwl_isr() in drivers/net/wireless/iwlwifi/iwl-core.c Signed-off-by: Rami Rosen Acked-by: Reinette Chatre Signed-off-by: John W. Linville commit 8fc0fee09245fe740d81aded36f4af6db1054015 Author: Johannes Berg Date: Sun May 24 16:57:19 2009 +0200 cfg80211: use key size constants Instead of hardcoding the key length for validation, use the constants Zhu Yi recently added and add one for AES_CMAC too. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 362a415dce2130b0e4cebfc8f8fbd8128baff308 Author: Johannes Berg Date: Sun May 24 16:43:15 2009 +0200 nl80211: bounce scan request back to userspace When a scan finishes only the program that asked for it knows what kind of scan it was; let's tell everybody else about the scan parameters as well so they can evaluate the result of the scan better. Also helps with debugging. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 51b50fbeb574f581c0b112e035541f42fa3e604a Author: Johannes Berg Date: Sun May 24 16:42:30 2009 +0200 cfg80211: validate AID of stations being added We have some validation code in mac80211 but said code will force an invalid AID to 0 which isn't a valid AID either; instead require a valid AID (1-2007) to be passed in from userspace in cfg80211 already. Also move the code before the race comment since it can only be executed during STA addition and thus is not racy. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6b347bff145f9a8a0972ca8fc3c44dd1f91b0f16 Author: Ivo van Doorn Date: Sat May 23 21:09:28 2009 +0200 rt2x00: Remove last usage of beacon_int from ieee80211_config This removes the last usage of beacon_int inside the iee80211_config structure from rt2x00. The attempt is a bit hackish, and subject to change in the future when the entire rt2x00_dev structure is cleaned up and restructured. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit e535c7566e1318ccfa015e297f0309994f7bc078 Author: Johannes Berg Date: Sat May 23 11:18:45 2009 +0200 mac80211: deprecate conf.beacon_int properly Ivo has updated the driver to no longer use the change flag, so we can remove that, but rt2x00 and ath5k still use the actual value so let's mark it as deprecated too. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2fa7a98fc96abe431e5d54d97104cdca197391fa Author: Dan Williams Date: Fri May 22 20:09:58 2009 -0400 libertas: fix WPA adhoc network creation Oddly enough, the firmware's JOIN/START commands don't appear to have any facility for setting custom IEs, thus the started adhoc network doesn't advertise its WPA capability in the beacon. Whee! Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 822ac03a07cc9e714727a6d49ea050b92483f82a Author: Dan Williams Date: Fri May 22 20:07:14 2009 -0400 libertas: convert CMD_802_11_ASSOCIATE to a direct command Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit be0d76e48f6cc1f8b01eeb5efbeea41f2efdab49 Author: Dan Williams Date: Fri May 22 20:05:25 2009 -0400 libertas: convert CMD_802_11_AUTHENTICATE to a direct command And fix up setting authentication suite for v9+ firmware too. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 75b6a61a47353fd404277ae3f2dda03af96a8c1a Author: Dan Williams Date: Fri May 22 20:03:09 2009 -0400 libertas: restyle Marvell & IEEE TLV structure names Easier to read and more conformant with kernel style. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 5fd164e96cb9dc111f75468378de38c67b0fd161 Author: Dan Williams Date: Fri May 22 20:01:21 2009 -0400 libertas: simplify and clean up association/start/join setup Some of the parameters for association/join/start commands aren't used (like the FH and CF IEs for IBSS, and the FH IE for BSS), so get rid of their unions to reduce indirection. Also clean up structure names for kernel style. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit d77b034f62d4b8c6c39450d99de224b9b2c5debb Author: Reinette Chatre Date: Fri May 22 14:37:55 2009 -0700 iwlwifi: fix otp access init Polling function returns positive time if polling was needed to read value. This is still success. Signed-off-by: Reinette Chatre CC: Wey-Yi Guy Signed-off-by: John W. Linville commit df29ff379425954cb74b7beb642ca5b43ae557ae Author: Reinette Chatre Date: Fri May 22 14:37:54 2009 -0700 iwlwifi: fix merge error This hunk of code was removed in patch "iwlwifi: do not cancel delayed work inside spin_lock_irqsave" submitted at http://marc.info/?l=linux-wireless&m=124267503030042&w=2 This same patch in this repo does not remove this hunk. Remove it here. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ce2ebc9b8ddac020aa06c83a6d084c34017d835d Author: Ivo van Doorn Date: Fri May 22 21:33:21 2009 +0200 rt2x00: Add new rt2800usb USB ID's new patch to add more usb_dev to rt2800usb.c . IDs 'stolen' from the latest Ralink linux driver(2009_0520_RT3070_Linux_STA_v2.1.1.0.tar.gz) Signed-off-by: Xose Vazquez Perez Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit f488b72de5bb2f380c157135922bac3ca1648564 Author: Sebastian Andrzej Siewior Date: Fri May 22 21:19:40 2009 +0200 net/libertas: make SPI interface big endian aware The comment (which I remove) says that the translation is done SPI routines. IMHO this can't work because the SPI driver does not know whether the incomming bytes are part of the registers/bytes which need to be flipped or part of packet data which has to remain untouched. While adding le helpers I also removed spu_write_u32() which has no users. Tested-by: Andrey Yurovsky Signed-off-by: Sebastian Andrzej Siewior Acked-by: Dan Williams Signed-off-by: John W. Linville commit 55aa4e0f16aa55e4b8cbe40b11e09cf029848f02 Author: John W. Linville Date: Mon May 25 21:28:47 2009 +0200 ath5k: avoid leaking mutex in ath5k_config Reported-by: Johannes Berg Signed-off-by: John W. Linville commit b2f8f7525c8aa1fdd8ad8c72c832dfb571d5f768 Merge: d455e5b 12186be Author: David S. Miller Date: Wed Jun 3 02:43:41 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/forcedeth.c commit 46c37672d7fff0097385eb0cbd01aa0254dad0aa Author: David S. Miller Date: Thu May 28 01:22:57 2009 -0700 rtl8187: Remove pointless check in rtl8187_rx_cb(). First of all, it exposes the SKB list implementation. Second of all it's not needed. If we get called here, we successfully enqueued the URB with the linked SKB and such a completion only gets called one time on such an SKB. Signed-off-by: David S. Miller commit a1091aae19b1d9c85d91c86915a611387f67a26b Author: David S. Miller Date: Thu May 28 00:48:16 2009 -0700 p54: Use SKB list handling helpers instead of by-hand code. Signed-off-by: David S. Miller commit ae71fabbe55552afc01f2bc797bee6838db22485 Author: David S. Miller Date: Wed May 27 17:27:01 2009 -0700 wavelan: Remove bogus debugging on skb->next being non-NULL. This eliminates explicit references to the SKB list handling implementation. Signed-off-by: David S. Miller commit 1ce8e7b57b3a4527ef83da1c5c7bd8a6b9d87b56 Author: Eric Dumazet Date: Wed May 27 04:42:37 2009 +0000 net: ALIGN/PTR_ALIGN cleanup in alloc_netdev_mq()/netdev_priv() Use ALIGN() and PTR_ALIGN() macros instead of handcoding them. Get rid of NETDEV_ALIGN_CONST ugly define Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 079e24ed80c8a91dd2884b88820bac6f340aaa83 Author: David S. Miller Date: Tue May 26 21:15:00 2009 -0700 nl80211: Eliminate reference to BUS_ID_SIZE. It's going away. Just leave the constant "20" here so that behavior doesn't change. Signed-off-by: David S. Miller commit d0fc1d5e3fe869f8a32a2bc1dd02d8383a057164 Author: Zhu Yi Date: Mon May 25 22:41:51 2009 -0700 iwmc3200wifi: fix link error when CFG80211 is not selected The patch makes iwmc3200wifi select CFG80211 instead of LIB80211. This fixed module link error reported by Randy Dunlap when compiling iwmc3200wifi without cfg80211 selected. WIRELESS_EXT is also selected by iwmc3200wifi. Signed-off-by: Zhu Yi Signed-off-by: David S. Miller commit c649c0e31d5736a4b7c5c3454182091dda4bbe62 Merge: daebafe 4e2fd55 Author: David S. Miller Date: Mon May 25 01:42:21 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/wireless/ath/ath5k/phy.c drivers/net/wireless/iwlwifi/iwl-agn.c drivers/net/wireless/iwlwifi/iwl3945-base.c commit 45ea4ea2af358fe316c918381c7868f9418cad09 Merge: dddc045 a2e2322 Author: David S. Miller Date: Mon May 25 00:38:24 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit a2e2322d83df82a57ba456cfa604c8b8f7b04670 Author: Wey-Yi Guy Date: Fri May 22 11:01:55 2009 -0700 iwlwifi: check for valid band for channel info when display channel info in debugfs, always check for valid band before access the pointer and display information for 1000 NIC, it only support "bgn" mode, so there is no 5.2GHz channels available to display. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 086ed117c918f07fd40323ab5adc64c52ea7c1b8 Author: Mohamed Abbas Date: Fri May 22 11:01:54 2009 -0700 iwlagn: co-exist with AMT Enable using iwlwifi driver in AMT system. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0324c14b6f3730eb155dcff864b9c0cf8c893c5f Author: Mohamed Abbas Date: Fri May 22 11:01:53 2009 -0700 iwlcore: Set rb_timeout to 0x10 for devices with ICT rb value should be 0x10 for devices using ICT. RX interrupt was not performing well with 0 value Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 40cefda9ce11c44a2531d07af812900aa5f3ce9d Author: Mohamed Abbas Date: Fri May 22 11:01:52 2009 -0700 iwlcore: Add support for periodic RX interrupt Periodic RX interrupt needed with ICT interrupt to prevent RX race. Sending RX interrupt require many steps to be done in the the device: 1- write interrupt to current index in ICT table. 2- dma RX frame. 3- update RX shared data to indicate last write index. 4- send interrupt. This could lead to RX race, driver could receive RX interrupt but the shared data changes does not reflect that. this could lead to RX race, RX periodic will solve this race Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4752c93c30441f98f7ed723001b1a5e3e5619829 Author: Mohamed Abbas Date: Fri May 22 11:01:51 2009 -0700 iwlcore: Allow skb allocation from tasklet. If RX queue becomes empty then we need to restock the queue from tasklet to prevent ucode from starving. A caller to iwl_rx_allocate will decide if allocated buffer should come from GFP_ATOMIC or GFP_KERNEL. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ef850d7cb301bda9155c096269557a4586b58071 Author: Mohamed Abbas Date: Fri May 22 11:01:50 2009 -0700 iwlcore: support ICT interrupt Add ICT interrupt handler support, ICT should improve CPU utilization since it does not require target read which is very expensive. This interrupt handler only added to 5000 cards and newer. Device will write interrupts to ICT shared table to inform driver about its interrupts. These patches will not touch 3945 and 4965 interrupt handlers and tasklet. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a2b0f02e4795bfde5f11720a10af8923cb98b654 Author: Wey-Yi Guy Date: Fri May 22 11:01:49 2009 -0700 iwlwifi: support "pure 40MHz" in RXON command Fix the bug when using 11n "pure 40MHz" mode cause uCode crashing by adding support for "pure 40MHz" in RX_ON command flag. the "mode" field (bits 25:26) has value of 0-3 0 = 20 MHz only 1 = 40MHz only 2 = Mixed 3 = Reserved Control Channel ID (bit 22) is valid only in Mixed mode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a9c146b369cd8facbbbec7d8b31440f6eaa43e03 Author: Wey-Yi Guy Date: Fri May 22 11:01:48 2009 -0700 iwlwifi: report the rate index as an MCS rate number If transmit in HT rate, report the rate index as an MCS rate number instead of an index. so "iw" can display correct BitRate Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a8b50a0a966d7ac313f624c6ab4996231a5fe25a Author: Mohamed Abbas Date: Fri May 22 11:01:47 2009 -0700 iwlcore: register locks Add new lock to be used when accessing some registers. Also move the register lock and iwl_grab_nic_access inside the function for register access. This will prevent from forgetting to hold locks and nic access in the right way and make code easier to maintain. We over use the priv->lock spin lock and I guess we need to add new one for Tx queue after that we might need to change most of these lock to BH and just keep priv->lock as irq type. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0848e297c2107dbc12a91a1709c879c73bd188d8 Author: Wey-Yi Guy Date: Fri May 22 11:01:46 2009 -0700 iwlwifi: support NVM access (EEPROM/OTP) Two type of NVM available for devices 1000, 6000 and after, adding support to read OTP lower blocks if OTP is used instead of EEPROM. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 8a566afea0639fc387add782bc799009512a911b Author: Ivo van Doorn Date: Thu May 21 19:16:46 2009 +0200 rt2x00: Remove usage of IEEE80211_CONF_CHANGE_BEACON_INTERVAL IEEE80211_CONF_CHANGE_BEACON_INTERVAL was deprecated a month ago, it is about time to remove all usage from the rt2x00 drivers and use the correct beacon interval configuration through the bss_info structure. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 3b91c3604d000205fb4e56b5ddd6b77b22ad4689 Author: Ivo van Doorn Date: Thu May 21 19:16:14 2009 +0200 rt2x00: Add new rt2800usb USB ID's for Sweex The USB ID with unknown manufacturer is apparently sweex, copy it to the correct location of the list and add 2 additional USB ID's also belonging to Sweex. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 9839178e92bf205728c754aeb1933f631a9962d9 Author: Jussi Kivilinna Date: Fri May 22 17:40:34 2009 +0300 rndis_wlan: do not try to restore wpa keys using add_wep_key() set_infra_mode() tried to restore wpa keys using add_wep_key(). This never worked so prevent driver from trying. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit b145ee0ce1e325497e5bb91f78f1545b552b518f Author: Jussi Kivilinna Date: Fri May 22 17:40:27 2009 +0300 rndis_wlan: split add_wpa_key from rndis_iw_set_encode_ext Split add_wpa_key() from rndis_iw_set_encode_ext so that conversion to cfg80211 would be easier later on. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit b4703a2e32fdffbf83caf699817b21c4fc6d987c Author: Jussi Kivilinna Date: Fri May 22 17:40:20 2009 +0300 rndis_wlan: explain bits used in key setup code. Driver uses some unnamed bits to control encryption setup. Move these to enumerations with proper names explaining their meaning. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 9656e85ba24a9814f1705e0e3639281d15d6a419 Author: Jussi Kivilinna Date: Fri May 22 17:40:12 2009 +0300 rndis_wlan: remove CAP_SUPPORT_TXPOWER/OID_802_11_TX_POWER_LEVEL code BCM4320 doesn't support OID_802_11_TX_POWER_LEVEL (chip implements the command but setting value has no effect and getting txpower value always returns 0xff, full power). So remove the code for cleanup. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 59620e9fd631703ecdc7a6d304231b45560b8d26 Author: Jussi Kivilinna Date: Fri May 22 11:58:36 2009 +0300 rndis_wlan: fix support for bcm4320a Old variant of bcm4320 doesn't handle setting configuration parameters correctly. One symptom is that MAC gets partially overwritten when any config parameters are set. This patch disables config-params for bcm4320a (and generic rndis-wlan). Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 62161aefa403a3f8d603b061f5688cf00928a2cc Author: Wey-Yi Guy Date: Thu May 21 13:44:23 2009 -0700 iwlwifi: Temperature sensor voltage reading for 5150 The temperature measurement by uCode for 5150 and 5000 are different CSR_HW_REV_TYPE_5150: temperature sensor output voltage CSR_HW_REV_TYPE_5000: temperature in Celsius temperature related operation for 5150 is measured by temperature sensor output voltage; additional conversion is required for set and store the temperature. To make sure support different HW design; implement _ops method for temperature related functions (temperature reading and set ct kill threshold) Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2681b20ba2a255ea20a168c0ebe519c40b55e57e Author: Wey-Yi Guy Date: Thu May 21 13:44:22 2009 -0700 iwlwifi: add Greenfield support for 11n Add "Greenfield" support for all devices except 4965 and 3945. "Greenfield" is part of 11n features to improve HT performance. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 749e091ee0065ed366cc26c115abc237e07ed786 Author: Abhijeet Kolekar Date: Thu May 21 13:44:21 2009 -0700 iwl3945: improve 3945 leds 'tpt' is a delta throughput (number of packets) and is corelated to brightness of the LED. We already maintain a delta of packets in rxtxpackets. There is no need to calculate this delta again which was affecting the behaviour of LEDS. Also add two new callback functions for ASSOCIATED/DISASSOCIATED states where LED's will be *on* for associated state and *off* for disassociated state. This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1771. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2c7e57981f24e9f8b732ecf1c01e16111d21b7a5 Author: Bing Zhao Date: Thu May 21 11:32:34 2009 -0700 libertas: read SD8688 firmware status from new register The scratch pad register is used to store firmware status after firmware is downloaded and initialized. After firmware status is verified OK, the same register is used to store RX packet length. Hence the firmware status code is no longer valid afterwards. SD8688 firmware introduces a new register for firmware status which will never be overwritten. Also add scratch_reg variable to if_sdio_card structure and initialize it based on the model of the card during probe. Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit bb9f8692f5043efef0dcef048cdd1db68299c2cb Author: Zhu Yi Date: Thu May 21 21:20:45 2009 +0800 iwmc3200wifi: Add new Intel Wireless Multicomm 802.11 driver This driver supports Intel's full MAC wireless multicomm 802.11 hardware. Although the hardware is a 802.11agn device, we currently only support 802.11ag, in managed and ad-hoc mode (no AP mode for now). Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit e31a16d6f64ef0e324c6f54d5112703c3f13a9c4 Author: Zhu Yi Date: Thu May 21 21:47:03 2009 +0800 wireless: move some utility functions from mac80211 to cfg80211 The patch moves some utility functions from mac80211 to cfg80211. Because these functions are doing generic 802.11 operations so they are not mac80211 specific. The moving allows some fullmac drivers to be also benefit from these utility functions. Signed-off-by: Zhu Yi Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit a971be223f243311a8014ddfc721f68e3ef2da9c Author: Johannes Berg Date: Thu May 21 12:02:05 2009 +0200 mac80211: correct probe wait time My first patch submission used 200ms, which I then somehow managed to revert back to the earlier 50ms I had used for some tests in the second patch submission -- but that was wrong, I should have used 200ms here. Correct that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ccdfeab6536ae55d43436ffaae949afde6e962ca Author: Jouni Malinen Date: Wed May 20 21:59:08 2009 +0300 ath9k: Update Beacon timers based on timestamp from the AP Some APs seem to drift away from the expected TBTT (timestamp % beacon_int_in_usec differs quite a bit from zero) which can result in us waking up way too early to receive a Beacon frame. In order to work around this, re-configure the Beacon timers after having received a Beacon frame from the AP (i.e., when we know the offset between the expected TBTT and the actual time the AP is sending out the Beacon frame). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 267a90127472be70b02ab13cbd355b5013e2aa51 Author: Jouni Malinen Date: Wed May 20 21:56:39 2009 +0300 ath9k: Optimize TBTT/DTIM calculation for timers The previous version used a simple loop to go through all Beacon frames when determining the next TBTT and DTIM count. This is not too bad for the case where the setup happens before timesync (i.e., very small TSF), but this can become very heavy operation if a short Beacon interval is used and the current TSF is large. In preparation for a patch to update timer setup based on Beacon timestamp, optimize this routine to take fixed time regardless of the actual TSF value. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit d26285f873c3066fefe648b47b9ecf3ec18bcfbc Author: Bing Zhao Date: Tue May 19 19:48:20 2009 -0700 libertas: implement function init/shutdown commands for SD8688 SD8688 is a WLAN/Bluetooth combo chip and both functions are supported in a single firmware image. FUNC_INIT and FUNC_SHUTDOWN commands are implemented to utilize the multiple function feature. When SD8688 card is inserted, the firmware image should be downloaded only once through either WLAN function (Libertas driver) or Bluetooth function (Bluetooth driver). This patch adds function init/shutdown for SD8688 WLAN function only. Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit b136a1414c94b4bda1057b4ffde26253d2527628 Author: Bing Zhao Date: Tue May 19 19:48:19 2009 -0700 libertas: get SD8688 rx length with one CMD52 Usually, the 16-bit rx length is read from scratch pad registers with two CMD52 transactions: SD8385: IF_SDIO_SCRATCH_OLD (0x80fe/0x80ff) SD8686/SD8688: IF_SDIO_SCRATCH (0x34/0x35) Alternatively, SD8688 firmware offers an enhanced method for driver to read an 8-bit rx length (in units) with a single CMD52: IF_SDIO_RX_UNIT 0x43 is read one time after firmware is ready. IF_SDIO_RX_LEN 0x42 is read every time when rx interrupt is received. Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit e70a5ac5d27166cfe5bfbe8f63017af3b09d72ce Author: Bing Zhao Date: Tue May 19 19:48:18 2009 -0700 libertas: define macros for SDIO model numbers replace direct usages of SDIO model numbers with defined macros. Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit ea2d06395b6de717a5e0c4b6e55f3047cae2131f Author: andrey@cozybit.com Date: Tue May 19 17:20:13 2009 -0700 libertas: fix GSPI card event handling The GPSI interface driver does not re-enable the Card Event Interrupt, which causes problems after a card event (for example: link-loss) comes in. This can lead, for example, to the card failing to re-associate. This patch ensures that we re-enable the Card Event Interrupt when we handle card events. Signed-off-by: Andrey Yurovsky Acked-by: Dan Williams Signed-off-by: John W. Linville commit 4ef699fb771d347b31ddafd214c0dd47b90f7f0f Author: Johannes Berg Date: Tue May 19 21:26:07 2009 +0200 mac80211: fix probe response wait timing In "mac80211: split out and decrease probe wait time" I tried to reduce the time waiting for a probe response, but failed to take into account the case where we are detecting beacon loss in software -- in that case we still wait the monitoring time rather than the probe wait time. Fix this by refactoring the mod_timer() calls in ieee80211_associated(). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 87057825824973f29cf2f37cff1e549170b2d7e6 Author: Johannes Berg Date: Tue May 19 17:19:36 2009 +0200 wext: remove atomic requirement for wireless stats The requirement for wireless stats to be atomic is now mostly artificial since we hold the rtnl _and_ the dev_base_lock for iterating the device list. Doing that is not required, just the rtnl is sufficient (and the rtnl is required for other reasons outlined in commit "wext: fix get_wireless_stats locking"). This will fix http://bugzilla.kernel.org/show_bug.cgi?id=13344 and make things easier for drivers. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0d63cbb535a9525445513389370d35b522a700f1 Author: Michał Mirosław Date: Thu May 21 10:34:06 2009 +0000 wireless: Use genl_register_family_with_ops() Use genl_register_family_with_ops() instead of a copy. Signed-off-by: Michał Mirosław Signed-off-by: David S. Miller commit 9cef873798dfcdc10ff40b02abf1de935ceeba85 Author: Johannes Berg Date: Thu May 14 13:10:14 2009 +0200 mac80211: fix managed mode BSSID handling Currently, we will ask the driver to configure right away when somebody changes the desired BSSID. That's totally strange because then we will configure the driver without even knowing whether the BSS exists. Change this to only configure the BSSID when associated, and configure a zero BSSID when not associated. As a side effect, this fixes an issue with the iwlwifi driver which doesn't implement sta_notify properly and uses the BSSID instead and gets very confused if the BSSID is cleared before we disassociate, which results in the warning Marcel posted [1] and iwlwifi bug 1995 [2]. [1] http://thread.gmane.org/gmane.linux.kernel.wireless.general/32598 [2] http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1995 Cc: Marcel Holtmann Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit bbcf3f02771e069d0e113fe9bb62c27b671abf97 Author: Luis R. Rodriguez Date: Tue May 19 17:49:47 2009 -0400 cfg80211: warn when wiphy_apply_custom_regulatory() does nothing Device drivers using wiphy_apply_custom_regulatory() want some regulatory settings applied to their wiphy, if no bands were configured on the wiphy then something went wrong. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit eeddfd9db3b1c50d49202d0be35aae187fa90129 Author: Luis R. Rodriguez Date: Tue May 19 17:49:46 2009 -0400 ath9k: set max default eirp to 20 dBm This is always discarded anyway but lets just set this to our safest lowest. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit db67645db623caa12976293caa95fcd33d8c11b4 Author: Johannes Berg Date: Wed May 20 09:05:10 2009 +0200 mac80211: fix parameter confusion when finding IBSS When I fixed the crypto bit I must have done the negative test only -- it is quite clearly impossible to find _any_ IBSS to join with the parameters put the wrong way around. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c26c2e576dc05d90e8eadc0c6ca273ed7aa12535 Author: Luis R. Rodriguez Date: Tue May 19 18:27:11 2009 -0400 ath9k: fix custom regulatory call position ath_regd_init() needs to be called with the wiphy already properly set with the bands. Without this the custom regulatory settings were not taking effect, and the device would get the default channel settings from ath9k_[25]ghz_chantable. Reported-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 175427ce40bd5a3f973a76c46502875f0eed877c Author: Johannes Berg Date: Tue May 19 22:16:25 2009 +0200 mac80211: don't try to do anything on unchanged genIE When the genIE hasn't changed there's no reason to kick the state machine since it won't be able to do anything new -- doing this decreases the useless work we do for reassociating because if we do kick the state machine it will try to find a usable BSS but there might not be one because wpa_supplicant will only change the BSSID a little later. In a sense this is a workaround for userspace behaviour, but on the other hand userspace cannot really keep track of what the kernel currently has for genIE since any process could have changed that while wpa_supplicant wasn't looking. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ce4c45e099a81b2bc820b6e145aa9058c5acf0bd Author: Alexandre Becholey Date: Tue May 19 17:52:56 2009 +0200 rt73usb: fix for master mode Report status unknown as if there were successfully transmitted. This will avoid hostapd to disassociate because it doesn't understand what a status unknown is. Signed-off-by: Alexandre Becholey Signed-off-by: John W. Linville commit 7e0aae4732067e1bdb546071423a0b3483a79d9a Author: Jouni Malinen Date: Tue May 19 19:25:58 2009 +0300 mac80211: Do not override AID in the duration field When updating the duration field for TX frames, skip the update for PS-Poll frames that use this field for other purposes (AID). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 30196673fe17934617b5d5bfd456a0edf057a0b9 Author: Jouni Malinen Date: Tue May 19 17:01:43 2009 +0300 mac80211: PS processing for every Beacon with our AID in TIM If the AP includes our AID in the TIM IE, we need to process the Beacon frame as far as PS is concerned (send PS-Poll or nullfunc data with PM=0). The previous code skipped this in cases where the CRC value did not change and it would not change if the AP continues including our AID in the TIM.. There is no need to count the crc32 value for directed_tim with this change, so we can remove that part. In order not to change the order of operations (i.e., update WMM parameters prior to sending PS-Poll), the CRC match is checked twice as only after the PS processing step, the rest of the function is skipped if nothing changed in the Beacon. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit dc8c4585d2e6f3bf5c9d8c0a6036b591bd3baf2e Author: Jouni Malinen Date: Tue May 19 17:01:42 2009 +0300 ath9k: Set PM field in frame control when in PS mode mac80211 does not set PM field for normal data frames, so we need to update that based on the current PS mode when using PS-Poll (timeout=0) power save mode. This allows the AP to remain in sync with our PS state. However, there is still a potential race condition between PS state changes when multiple TX queues are used and nullfunc and PS-Poll frames use different queue. That corner case may need to be handled separately by changing which queue is used either in ath9k or mac80211. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit aa68aeaaff8bbf58e355eb83b7d0c14ce82b2f12 Author: Jouni Malinen Date: Tue May 19 17:01:41 2009 +0300 ath9k: Wake up for RX filter changes We must make sure the chip is awake when changing the RX filter parameters. This could have caused problems, e.g., when changing the interface to promiscuous mode while in sleep mode. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 54ce846e2c5ade77bc6650d8e8c7e775e01ad859 Author: Jouni Malinen Date: Tue May 19 17:01:40 2009 +0300 ath9k: Use TSFOOR interrupt to trigger TSF sync with next Beacon If the chip complains about TSF sync, make sure we remain awake to sync with the next Beacon frame. In theory, this should not be needed since we are currently trying to receive all Beacon frames, anyway, better have this code ready should we ever change that. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 1ffc1c61bdbe31105d99d65043bbf7ae6d24dbc7 Author: Jouni Malinen Date: Tue May 19 17:01:39 2009 +0300 ath9k: Do not try to calibrate radio when in sleep mode When the chip is in sleep mode, there is no point trying to calibrate the radio since it will just results in incorrect values being read from registers and other potential issues. In addition, if we actually start processing calibrate, do not allow the chip to be put into sleep until we have completed the calibration step. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 9a23f9ca50943c1b4535d22b3acda3c31b4ad072 Author: Jouni Malinen Date: Tue May 19 17:01:38 2009 +0300 ath9k: Wake up for TX in mac80211 timeout=0 sleep mode When using timeout=0 (PS-Poll) with mac80211, the driver will need to wake up for TX requests and remain awake until the TX has been completed (ACK received or timeout) or until the buffer frame(s) have been received (in case the TX is for a PS-Poll frame). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit cce4c77b87ce7e71a0f244a3dfb6ac1c3a1bc67e Author: Johannes Berg Date: Tue May 19 10:39:34 2009 +0200 mac80211: fix kernel-doc Moving information from config_interface to bss_info_changed removed struct ieee80211_if_conf which the documentation still refers to, additionally there's one kernel-doc description too much and one other missing, fix all this. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2c617b0324c4b05e8e08f14407a9be3b7756768f Author: Ivo van Doorn Date: Tue May 19 07:26:04 2009 +0200 rt2x00: Add USB ID for rt2800usb Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit e43e820c9cc5cc37ca8fc07d1f18cb29f13a2ce8 Author: Pavel Roskin Date: Mon May 18 21:43:52 2009 -0400 cfg80211: fix compile error with CONFIG_CFG80211_DEBUGFS If CONFIG_CFG80211_DEBUGFS is enabled and CONFIG_MAC80211_DEBUGFS is not, compilation fails in net/wireless/debugfs.c: net/wireless/debugfs.c: In function 'cfg80211_debugfs_drv_add': net/wireless/debugfs.c:117: error: 'struct cfg80211_registered_device' has no member named 'debugfs' The debugfs filed is needed if and only if CONFIG_CFG80211_DEBUGFS is enabled, so use that instead of CONFIG_MAC80211_DEBUGFS. Signed-off-by: Pavel Roskin Signed-off-by: John W. Linville commit 9c8b3eddc0666255851942df8ec72cd91d22f280 Author: Bob Copeland Date: Tue May 19 23:37:31 2009 -0400 ath5k: avoid and warn on potential infinite loop If we are trying to interpolate a curve with slope == 0, the return value will always be the y-coordinate. In this code we are looping until we reach a minimum y-coordinate on a line, which in the 0-slope case can never happen, thus the loop never terminates. The PCDAC steps come from the EEPROM and should never be equal, but we should gracefully handle that case, so warn and bail out. Reported-by: Steven Rostedt Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 61405e97788b1bc4e7c5be5b4ec04a73fc11bac2 Author: Luis R. Rodriguez Date: Wed May 13 17:04:41 2009 -0400 cfg80211: fix in nl80211_set_reg() There is a race on access to last_request and its alpha2 through reg_is_valid_request() and us possibly processing first another regulatory request on another CPU. We avoid this improbably race by locking with the cfg80211_mutex as we should have done in the first place. While at it add the assert on locking on reg_is_valid_request(). Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit d0e18f833d23afefb6751a21d14a2cd71d2d4d66 Author: Luis R. Rodriguez Date: Wed May 13 17:04:40 2009 -0400 cfg80211: cleanup return calls on nl80211_set_reg() This has no functional change, but it will make the race fix easier to spot in my next patch. Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 4776c6e7f66f853011bc1fd6fe37fa63f0b6982c Author: Luis R. Rodriguez Date: Wed May 13 17:04:39 2009 -0400 cfg80211: return immediately if num reg rules > NL80211_MAX_SUPP_REG_RULES This has no functional change except we save a kfree(rd) and allows us to clean this code up a bit after this. We do avoid an unnecessary kfree(NULL) but calling that was OK too. Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e74fbb412be9baeae5ee61e25dad0b8c1a287494 Author: Wei Yongjun Date: Wed May 13 09:47:38 2009 +0800 wireless: fix to set dev->broadcast correctly This patch fix to set dev->broadcast correctly, since dev->broadcast is defined as: unsigned char broadcast[MAX_ADDR_LEN]; Signed-off-by: Wei Yongjun Signed-off-by: John W. Linville commit 153e080da6a07ed888a0a59c45e28bc7351407ff Author: Vasanthakumar Thiagarajan Date: Fri May 15 02:47:16 2009 -0400 ath9k: Move PS wakeup/restore calls from isr to tasklet We do not need to do this in ath_isr() and it looks like the modified version ends up being more stable as far as being able receive beacon frames is concerned. Furthermore, this reduces need to move between AWAKE and NETWORK SLEEP states when processing some unrelated interrupts. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit e3da574a0ddd3e90a1e2b788b84b94bc17a75172 Author: Johannes Berg Date: Mon May 18 19:56:36 2009 +0200 cfg80211: allow wext to remove keys that don't exist Some applications using wireless extensions expect to be able to remove a key that doesn't exist. One example is wpa_supplicant which doesn't actually change behaviour when running into an error while trying to do that, but it prints an error message which users interpret as wpa_supplicant having problems. The safe thing to do is not change the behaviour of wireless extensions any more, so when the driver reports -ENOENT let the wext bridge code return success to userspace. To guarantee this, also document that drivers should return -ENOENT when the key doesn't exist. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 73606d00360cb93963aeb7bfbf8bfdbc51cfab9f Author: Daniel Wagner Date: Mon May 18 19:49:25 2009 +0200 mac80211_hwsim: Group radios Currently all radios receive all traffic on the simulated air if they are tuned to the same channel. This patch introduces the concept of grouping, which allows to assign a radio to certain group. Only radios in the same group can 'see' each other. Each bit in /debug/ieee80211/phy*/hwsim/group represents one group. By default all radios belong to the same group "1", e.g. bit 1 is set. Additionally a radio can belong to several groups. Signed-off-by: Daniel Wagner Signed-off-by: John W. Linville commit 1071db863b129847cedb65339d1e87ecf5952a8b Author: Bob Copeland Date: Mon May 18 10:59:52 2009 -0400 ath5k: update beacons in AP mode ath5k only generated the beacon when bss_info_changed() was called, but for AP mode this is not enough, because the TIM IE would never get updated and consequently PS mode clients wouldn't know about buffered frames. Instead, get a new beacon on every SWBA interrupt. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 4de2dc74a1c7dedcfbe8290316f1a239a7c86554 Author: Max Filippov Date: Mon May 18 21:28:55 2009 +0400 p54spi: drop test for FW_STATE_RESET in p54spi_work Drop test for FW_STATE_RESET in p54spi_work as fw_state is never assigned this value. Signed-off-by: Roel Kluin Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 3f0d843b5c94be824c2027f01348f360958e5542 Author: Johannes Berg Date: Mon May 18 10:53:18 2009 +0200 b43/legacy: fix beacon change processing Process beacon change even if the BSSID doesn't change at the same time. Also fix what I think is a small locking error in b43legacy, there's a spin_unlock_irqrestore that looks out of place. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ff561ac84e0bdfe1316ed355669dd73101609f24 Author: Max Filippov Date: Mon May 18 03:02:35 2009 +0400 p54spi: use firmware/DMA bug workaround that work under hight load in p54spi_rx Under high load first data word, read after available data size is sometimes lost in p54spi_rx. It seems to depend on frequency of interrupts and latency of data read request relatively to 'data available' interrupt. The worst consequence of this bug is loss of packet transmission acknowledgement, which in turn causes overflow of tx queues and permanent link loss. Read data size and first data word in one SPI transaction. No packets from LMAC should have length less than 1 word, so this shouldn't interfere with the next read transaction. Also call p54spi_sleep if p54spi_wake succeeded. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 6edf534a3214e8fad943d7acd903603f0a5b9ac8 Author: Max Filippov Date: Mon May 18 03:02:34 2009 +0400 p54spi: always call p54spi_sleep in p54spi_tx_frame if p54spi_wakeup succeeded Put chip into sleep state, once it's been awaken. Also, propagate error code to the caller. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 465b63537f93e82a2606332830801acb64467ec9 Author: Max Filippov Date: Mon May 18 03:02:33 2009 +0400 p54spi: return status of p54spi_wakeup Return whether wakeup operation succeeded. Make use of this return value. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 69712e926bad9c163d5ba5597f08084ee7902480 Author: Max Filippov Date: Mon May 18 03:02:32 2009 +0400 p54spi: cosmetic fixes: use even byte count in SPI write; drop unused interrupt status read When SPI write of odd length is requested, p54spi_write splits it into two parts: one for all data, except the last byte, and one for last byte and padding byte. Unfortunately, the length of first part is not amended. It works because all meaningful bytes have proper value and the last byte of odd length SPI write transaction is ignored. p54spi_work has dummy HOST_INTERRUPTS register read at the end. Drop it, as its result is not used and it has no side effects. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 210dd1bb9b0329bcc1b4f8932022eddc6466980c Author: Max Filippov Date: Mon May 18 03:02:31 2009 +0400 p54spi: fix incorrect access sequence to DMA_WRITE_CTRL in p54spi_spi_write_dma Host is not allowed to modify DMA_WRITE_CTRL register if bit HOST_ALLOWED in it is not set. Wait for HOST_ALLOWED first. Also get rid of timeout in p54spi_wait_bit as it's been playing a role of workaround for such an incorrect register access. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit 4eaf16bc1f92bf772f6d42860e86b399d00b7b94 Author: Julia Lawall Date: Sun May 17 11:28:42 2009 +0200 drivers/net: use dev_get_drvdata Eliminate direct accesses to the driver_data field. cf 82ab13b26f15f49be45f15ccc96bfa0b81dfd015 The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ struct device *dev; expression E; type T; @@ - dev->driver_data = (T)E + dev_set_drvdata(dev, E) @@ struct device *dev; type T; @@ - (T)dev->driver_data + dev_get_drvdata(dev) // Signed-off-by: Julia Lawall Acked-by: Zhu Yi Signed-off-by: John W. Linville commit cf5aa2f1f39d367d449df4c10de3d8e6f9c4443b Author: David Kilroy Date: Sat May 16 23:13:47 2009 +0100 cfg80211: mark wiphy->privid as pointer to const This allows drivers to use a const pointer as the privid without a cast. Signed-off-by: David Kilroy Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 3dcf670baf3d3a9bfc752e59d0b1a8d886230750 Author: David Kilroy Date: Sat May 16 23:13:46 2009 +0100 cfg80211: mark ops as pointer to const This allows drivers to mark their cfg80211_ops tables const. Signed-off-by: David Kilroy Acked-by: Johannes Berg Signed-off-by: John W. Linville commit c15ff610453a6daa708f32b1c00b8344d3a462dd Author: Tomas Winkler Date: Fri May 15 16:13:44 2009 -0700 iwlwifi: drop iwl3945_tid_data This patch is one of the incremental steps for unifying iwl_station_entry for all HWs, i.e. removing of iwl3945_station_entry This patch drops iwl3945_tid_data and use iwl_tid_data instead. Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bed420d9c0a642cda3d37b66db0f66f87d8f8185 Author: Tomas Winkler Date: Fri May 15 16:13:43 2009 -0700 iwlwifi: drop struct iwl3945_hw_key This patch replaces struct iwl3945_hw_key by struct iwl_hw_key. It's not used directly with any host command therefore removal is trivial Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 44710bbc073b2e7ea269cf716b817297cd35ae10 Author: Stefano Brivio Date: Fri May 15 15:39:20 2009 -0500 b43legacy: Remove unnecessary MMIO in interrupt hotpath This removes unnecessary MMIO accesses in the interrupt hotpath. The patch by Michael Buesch for b43 has been ported to b43legacy. Signed-off-by: Stefano Brivio Tested-by: Larry Finger Signed-off-by: John W. Linville commit 6b96f93e962e25d38d7a73c0009597672d87c496 Author: Vasanthakumar Thiagarajan Date: Fri May 15 18:59:22 2009 +0530 ath9k: cleanup beacon parameters configuration This patch configures the beacon timers with beacon interval and beacon period passed through vif.bss_conf. Also cache the currecnt beacon configuration which will be used to configure the beacon timers when the driver triggers it after reset. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit d31e20af9f65e38429a3ed32175f8e233bdcd2b2 Author: Vasanthakumar Thiagarajan Date: Fri May 15 18:59:21 2009 +0530 ath9k: Remove unused parameters which are passed to ath_beacon_config_X() Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 6b45784fbe9b31c287ab7f2717e4bd4cdcdd340c Author: Vasanthakumar Thiagarajan Date: Fri May 15 18:59:20 2009 +0530 ath9k: Print hw reset failure status as signed int Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 5bb644a0fd25a5e083ecbfaa92a211db99aa6ef7 Author: Johannes Berg Date: Sun May 17 11:40:42 2009 +0200 mac80211: cancel/restart all timers across suspend/resume We forgot to cancel all timers in mac80211 when suspending. In particular we forgot to deal with some things that can cause hardware reconfiguration -- while it is down. While at it we go ahead and add a warning in ieee80211_sta_work() if its run while the suspend->resume cycle is in effect. This should not happen and if it does it would indicate there is a bug lurking in either mac80211 or mac80211 drivers. With this now wpa_supplicant doesn't blink when I go to suspend and resume where as before there where issues with some timers running during the suspend->resume cycle. This caused a lot of incorrect assumptions and would at times bring back the device in an incoherent, but mostly recoverable, state. Signed-off-by: Luis R. Rodriguez Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit cc32abd494c0a8f76f2638e3f3a76e01c68bc9ea Author: Johannes Berg Date: Fri May 15 11:52:31 2009 +0200 mac80211: move channel switch code The channel switch code is currently in the spectrum management file, where arguably it belongs. However, it is for managed mode only and uses the structures for that mode only so having it in a more generic file can be confusing. Additionally, my next patch gets simpler with the code here. When/if we ever implement this for IBSS or mesh then we will need to rework the structures it uses anyway at which point we could move the code back. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9f26a952210e44691f784b77bf1f83a500d63f58 Author: Jouni Malinen Date: Fri May 15 12:38:32 2009 +0300 nl80211: Validate NL80211_ATTR_KEY_SEQ length Validate RSC (NL80211_ATTR_KEY_SEQ) length in nl80211/cfg80211 instead of having to do this in all the drivers. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit cc65965cbb24d2ca2bb70f26cac9d7243349e7e3 Author: Jouni Malinen Date: Thu May 14 21:28:48 2009 +0300 ath9k: Fix PS mode operation to receive buffered broadcast/multicast frames The previous implementation was moving back to NETWORK SLEEP state immediately after receiving a Beacon frame. This means that we are unlikely to receive all the buffered broadcast/multicast frames that would be sent after DTIM Beacon frames. Fix this by parsing the Beacon frame and remaining awake, if needed, to receive the buffered broadcast/multicast frames. The last buffered frame will trigger the move back into NETWORK SLEEP state. If the last broadcast/multicast frame is not received properly (or if the AP fails to send it), the next Beacon frame will work as a backup trigger for returning into NETWORK SLEEP. A new debug type, PS (debug=0x800 module parameter), is added to make it easier to debug potential power save issues in the future. Currently, this is only used for the Beacon frame and buffered broadcast/multicast receiving. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 9d64a3cfaf3edb548b68ef4eedbadbb875eaa10e Author: Jouni Malinen Date: Thu May 14 21:28:47 2009 +0300 ath9k: Clean up RX processing a bit This makes use of the local fc variable in bit more places and uses a common helper macro. The part of RX process that delivers skb's to mac80211 is moved to a separate function in preparation for future changes that will need to do this from two places. The modifications here should not result in any functional changes. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit d8959fbfbad5f75c7df673aaf5112ba5e405ad34 Author: Jouni Malinen Date: Thu May 14 21:28:46 2009 +0300 ath9k: Fix a check for multicast address for virtual wiphy The broadcast bit is in the first, not the last octet.. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 92778180f7fca7f7797de8020900a7fea175f7e3 Author: Jouni Malinen Date: Thu May 14 21:15:36 2009 +0300 mac80211: Cancel pending probereq poll on beacon RX While the probe request poll is expected to work, it looks like it does not always result in getting a response. The exact reason for this is unclear, but anyway, if we do receive a Beacon frame from our AP, there is no need to disconnect based on the probereq poll. This seems to help keep the connection bit more stable in cases where beacon loss is occurring semi-frequently. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 13bdcd90bbce7c07e0dda0ff31e9497b8cabf1eb Author: Gábor Stefanik Date: Thu May 14 17:34:59 2009 +0000 zd1211rw: Replace ZD_CS_MULTICAST with ZD_CS_NO_ACK According to my tests, all that ZD_CS_MULTICAST does is to disable retrying/waiting for an ACK. Reflect this by renaming the bit to ZD_CS_NO_ACK and setting it based on IEEE80211_TX_CTL_NO_ACK, instead of is_multicast_ether_addr. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit cccaec98a3ddbf20f22604f9ba405781c5f89f0e Author: Senthil Balasubramanian Date: Thu May 14 18:42:08 2009 +0530 mac80211: Initialize RX's last received sequence number The STA may drop the very first frame if it happens to be a retried frame. This is because we maintian the last received sequence number per TID for QoS frames and it is initialized to zero through kzalloc during sta_info_alloc and the sequence number of the very first date frame received would be ZERO (as per IEEE 802.11-2007, 7.1.3.4.1). If the frame dropped happens to be an EAP Request Identity(very first frame from the AP), then wpa_supplicnat disconnects the STA and the whole procedure starts again. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 80a3511d70e8fc7ed3fe4417d7b0bf6c3f642f64 Author: Luis R. Rodriguez Date: Sat May 2 00:39:30 2009 -0400 cfg80211: add debugfs HT40 allow map Here's a screenshot of what this looks like with ath9k: mcgrof@pogo /debug/ieee80211/phy0 $ cat ht40allow_map 2412 HT40 + 2417 HT40 + 2422 HT40 + 2427 HT40 + 2432 HT40 -+ 2437 HT40 -+ 2442 HT40 -+ 2447 HT40 - 2452 HT40 - 2457 HT40 - 2462 HT40 - 2467 Disabled 2472 Disabled 2484 Disabled 5180 HT40 + 5200 HT40 -+ 5220 HT40 -+ 5240 HT40 -+ 5260 HT40 -+ 5280 HT40 -+ 5300 HT40 -+ 5320 HT40 - 5500 HT40 + 5520 HT40 -+ 5540 HT40 -+ 5560 HT40 -+ 5580 HT40 -+ 5600 HT40 -+ 5620 HT40 -+ 5640 HT40 -+ 5660 HT40 -+ 5680 HT40 -+ 5700 HT40 - 5745 HT40 + 5765 HT40 -+ 5785 HT40 -+ 5805 HT40 -+ 5825 HT40 - Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1ac61302dcd18880e28c29e5728cd4d0efeb5366 Author: Luis R. Rodriguez Date: Sat May 2 00:37:21 2009 -0400 mac80211/cfg80211: move wiphy specific debugfs entries to cfg80211 This moves the cfg80211 specific stuff to new cfg80211 debugfs entries. Non-mac80211 will also get these entries now. There were only 4 which we take: rts_threshold fragmentation_threshold short_retry_limit long_retry_limit Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 294196ab22c91da974ba1f40d0a7cdcb0b3e6bc3 Author: Luis R. Rodriguez Date: Sat May 2 00:37:20 2009 -0400 cfg80211: check allowed channel type upon userspace requests Thanks to nl80211 userspace can be very specific upon device configuration. Before processing the request for the new HT40 channel types (HT40- or HT40+) we need to ensure we can use them regulatory-wise. This wasn't required with wireless extensions as specifying the channel type wasn't not available and configuration was done towards the end implicitly upon association or reception of beacons from the AP. For the new nl80211 we have to check this when configuring the interfaces explicitly. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 768777ea1118f6ff3f1a013557e7bc4f5d2683a4 Author: Luis R. Rodriguez Date: Sat May 2 00:37:19 2009 -0400 mac80211: check if HT40+/- is allowed before sending assoc We weren't checking this at all. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 689da1b3b8b37ff41e79f3fb973c06cdfeef12e5 Author: Luis R. Rodriguez Date: Sat May 2 00:37:18 2009 -0400 wireless: rename IEEE80211_CHAN_NO_FAT_* to HT40-/+ This is more consistent with our nl80211 naming convention for HT40-/+. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 038659e7c6b385065cb223872771ac437ef70b62 Author: Luis R. Rodriguez Date: Sat May 2 00:37:17 2009 -0400 cfg80211: Process regulatory max bandwidth checks for HT40 We are not correctly listening to the regulatory max bandwidth settings. To actually make use of it we need to redesign things a bit. This patch does the work for that. We do this to so we can obey to regulatory rules accordingly for use of HT40. We end up dealing with HT40 by having two passes for each channel. The first check will see if a 20 MHz channel fits into the channel's center freq on a given frequency range. We check for a 20 MHz banwidth channel as that is the maximum an individual channel will use, at least for now. The first pass will go ahead and check if the regulatory rule for that given center of frequency allows 40 MHz bandwidths and we use this to determine whether or not the channel supports HT40 or not. So to support HT40 you'll need at a regulatory rule that allows you to use 40 MHz channels but you're channel must also be enabled and support 20 MHz by itself. The second pass is done after we do the regulatory checks over an device's supported channel list. On each channel we'll check if the control channel and the extension both: o exist o are enabled o regulatory allows 40 MHz bandwidth on its frequency range This work allows allows us to idependently check for HT40- and HT40+. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit fd2120ca0da9108e53f8db2fe57ab74fca76fd56 Author: Pablo Neira Ayuso Date: Tue May 19 15:27:55 2009 -0700 net: use NLMSG_DEFAULT_SIZE in nlmsg_new() allocations nlmsg_new() adds the size of the netlink header to the value that has been passed as parameter. If NLMSG_GOODSIZE is selected, we request an allocation of one memory page plus the size of the header. Instead, NLMSG_DEFAULT_SIZE should be used since it already substracts the size of the Netlink header. I have the impression that the similar naming in both constant is error prone when using it with nlmsg_new(). This is already documented in include/net/netlink.h Signed-off-by: Pablo Neira Ayuso Signed-off-by: David S. Miller commit bb803cfbecb03a0cf8dc7e1864f18dda6631af00 Merge: 3878fb6 511e11e Author: David S. Miller Date: Mon May 18 21:08:20 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/scsi/fcoe/fcoe.c commit 82d048186e403f36e083b37ad42aa90abb7dcaac Merge: 62551d3 d3707d9 Author: David S. Miller Date: Mon May 18 14:48:30 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 3a6d54c56326c29c5357655779cfe6cf36481b17 Author: Jiri Pirko Date: Mon May 11 23:37:15 2009 +0000 net: remove needless (now buggy) & from dev->dev_addr Patch fixes issues with dev->dev_addr changing from array to pointer. Hopefully there are no others. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit d3707d9918d47c0997a6b1e4ae24e7ab55e43796 Author: Johannes Berg Date: Tue May 12 22:05:40 2009 +0200 mac80211: make noack test available There's this internal wifi_wme_noack_test variable that we use to set the QoS control if set. For one, it is unlikely that it is set. Secondly, if set it needs to influence the IEEE80211_TX_CTL_NO_ACK TX control flag, and finally we should also be able to set it at all, so make it available in debugfs. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b59066a291ca7c12a1e5b58f3ada5ab6e32cb6bd Author: Johannes Berg Date: Tue May 12 21:18:38 2009 +0200 mac80211: IBSS supported rate fixes Currently mac80211 announces a rate set with no basic rates, this fixes it to use 1/2 or 6/9 Mbit as basic rates by default. Additionally, mac80211 will currently adopt the peer's entire rate set, rather than just the basic rate set; fix that too. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e0d61887c2ee19bb63f6a8c0e2c149184e879501 Author: Johannes Berg Date: Tue May 12 20:47:32 2009 +0200 mac80211: don't connect to IBSS network with different privacy Even when we find an IBSS with the SSID we're looking for, we may not be able to connect to it because it has a key and we don't, or vice versa. Avoid such situations by checking the privacy capability bit. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e0502de6fe85b66ee51647eb75bc5af3c885d712 Author: Johannes Berg Date: Tue May 12 20:11:26 2009 +0200 mac80211: split out and decrease probe wait time The time we wait for a probe response after probing an AP due to beacon loss is currently the same as the monitoring interval, 2s. This is far too long, APs should respond to probes within a fraction of that time. To be able to adjust both values, add a new constant IEEE80211_PROBE_WAIT, use it for checking the probe response, and adjust it down to 200ms instead of 2 seconds. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 34bfc411f63c8b0efb328b7574fc97bc1714cb29 Author: Johannes Berg Date: Tue May 12 19:58:12 2009 +0200 mac80211: respond to beacon loss report only once The driver might keep reporting beacon loss until we disassociate -- catch that and don't respond to any subsequent events until the probe is either successful or we disassociate. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f7eef3563cb3f05e7f0db992716c514af6f4d089 Author: Johannes Berg Date: Tue May 12 08:36:43 2009 +0200 wext: remove seq_start/stop sparse annotations Even though they are true, they cause sparse to complain because it doesn't see the __acquires(dev_base_lock) on dev_seq_start() because it is only added to the function in net/core/dev.c, not the header file. To keep track of the nesting correctly we should probably annotate those functions publically, but for now let's just remove the annotation I added to wext. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit faa8fdc85347cc76d87b43ea718785661c54f656 Author: Jouni Malinen Date: Mon May 11 21:57:58 2009 +0300 nl80211: Add RSC configuration for new keys When setting a key with NL80211_CMD_NEW_KEY, we should allow the key sequence number (RSC) to be set in order to allow replay protection to work correctly for group keys. This patch documents this use for nl80211 and adds the couple of missing pieces in nl80211/cfg80211 and mac80211 to support this. In addition, WEXT SIOCSIWENCODEEXT compat processing in cfg80211 is extended to handle the RSC (this was already specified in WEXT, but just not implemented in cfg80211/mac80211). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 3f77316c6b99f596bfbf72c0542f47f7230b702e Author: Jouni Malinen Date: Mon May 11 21:57:57 2009 +0300 nl80211: Add IEEE 802.1X PAE control for station mode Add a new NL80211_ATTR_CONTROL_PORT flag for NL80211_CMD_ASSOCIATE to allow user space to indicate that it will control the IEEE 802.1X port in station mode. Previously, mac80211 was always marking the port authorized in station mode. This was enough when drop_unencrypted flag was set. However, drop_unencrypted can currently be controlled only with WEXT and the current nl80211 design does not allow fully secure configuration. Fix this by providing a mechanism for user space to control the IEEE 802.1X port in station mode (i.e., do the same that we are already doing in AP mode). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit eccb8e8f0c3af47aeb6dbe4012eb8d4fc888767a Author: Johannes Berg Date: Mon May 11 21:57:56 2009 +0300 nl80211: improve station flags handling It is currently not possible to modify station flags, but that capability would be very useful. This patch introduces a new nl80211 attribute that contains a set/mask for station flags, and updates the internal API (and mac80211) to mirror that. The new attribute is parsed before falling back to the old so that userspace can specify both (if it can) to work on all kernels. Signed-off-by: Johannes Berg Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 0e46724a48fcc3bac1fecea413d20af64a75844f Author: Jouni Malinen Date: Mon May 11 21:57:55 2009 +0300 nl80211: Validate MFP flag type when parsing STA flags NL80211_STA_FLAG_MFP was forgotten from sta_flags_policy. The previous version added the flag due to the loop used in parse_station_flags, but the proper behavior would be to allow nla_parse_nested() to go through the policy for all flags. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 08645126dd24872c2e27014f93968f7312e29176 Author: Johannes Berg Date: Mon May 11 13:54:58 2009 +0200 cfg80211: implement wext key handling Move key handling wireless extension ioctls from mac80211 to cfg80211 so that all drivers that implement the cfg80211 operations get wext compatibility. Note that this drops the SIOCGIWENCODE ioctl support for getting IW_ENCODE_RESTRICTED/IW_ENCODE_OPEN. This means that iwconfig will no longer report "Security mode:open" or "Security mode:restricted" for mac80211. However, what we displayed there (the authentication algo used) was actually wrong -- linux/wireless.h states that this setting is meant to differentiate between "Refuse non-encoded packets" and "Accept non-encoded packets". (Combined with "cfg80211: fix a couple of bugs with key ioctls". -- JWL) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7be69c0b9aa93ef655db4d46e5654996489d62f5 Author: Johannes Berg Date: Mon May 11 16:06:36 2009 +0200 wext: fix get_wireless_stats locking Currently, get_wireless_stats is racy by _design_. This is because it returns a buffer, which needs to be statically allocated since it cannot be freed if it was allocated dynamically. Also, SIOCGIWSTATS and /proc/net/wireless use no common lock, and /proc/net/wireless accesses are not synchronised against each other. This is a design flaw in get_wireless_stats since the beginning. This patch fixes it by wrapping /proc/net/wireless accesses with the RTNL so they are protected against each other and SIOCGIWSTATS. The more correct method of fixing this would be to pass in the buffer instead of returning it and have the caller take care of synchronisation of the buffer, but even then most drivers probably assume that their callback is protected by the RTNL like all other wext callbacks. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e80cf8537ae54ec96c389055d6e9b0ef630c042d Author: Johannes Berg Date: Mon May 11 14:43:13 2009 +0200 cfg80211: disallow interfering with stations on non-AP On non-AP interfaces userspace has no business interfering with the station management, this can confuse mac80211 (and other drivers probably wouldn't support it anyway). Allow adding and removing stations only on AP interfaces. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit cbe8fa9c5e88fd5f554ebc519af3b0ed17dde0dd Author: Johannes Berg Date: Sat May 9 20:09:03 2009 +0200 cfg80211: put wext data into substructure To make it more apparent in the code what is for wext only (and needs to be #ifdef'ed) put all the info for wext into a substruct in each wireless_dev. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4e943900fb9675d3a5ebdabc2cd4a9a54edace97 Author: Johannes Berg Date: Sat May 9 20:06:47 2009 +0200 cfg80211: constify key mac address in ops The address pointed to by mac_addr can be marked as const. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 8fbff4b838c53945d6baeafe609c627000f85cd6 Author: Vasanthakumar Thiagarajan Date: Fri May 8 17:54:51 2009 -0700 ath9k: Cleanup ineffective return values This patch makes the return type of some of the functions void as those functions always return true Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 19eddca67628e5fb722e4ebbbba8c307a884d0e8 Author: Vasanthakumar Thiagarajan Date: Fri May 8 17:54:50 2009 -0700 ath9k: Remove bogus break after return Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit f2c95b04aba3510323381fe49a0539c23da2e8f4 Author: Wey-Yi Guy Date: Fri May 8 13:44:45 2009 -0700 iwlwifi: default WMM AC parameters Set the default WMM AC parameters for BK/BE/VI/VO parameters: AC CWmin CW max AIFSN TXOP Limit TXOP Limit (802.11b) (802.11a/g) AC_BK 15 1023 7 0 0 AC_BE 15 1023 3 0 0 AC_VI 7 15 2 188 94 (6.016ms) (3.008ms) AC_VO 3 7 2 102 47 (3.264ms) (1.504ms) Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0b4d0ab44fa2f7bda7b14312741ba3f337a02d5a Author: Wey-Yi Guy Date: Fri May 8 13:44:44 2009 -0700 iwlwifi: show qos AC parameters Show current qos AC parameters in sysfs Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 38167459da50e3fe9a10635308bfb0048cc36e8e Author: Wey-Yi Guy Date: Fri May 8 13:44:43 2009 -0700 iwlagn: show current rate scale data in debugfs Add "rate_scale_data" debugfs file to show current bit rate (HT and Legacy), plus additional information (rssi, noise, tsf, beacon time stamp). Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fff7a4346c07c30a39910c3b627434fc0e7ccc33 Author: Wey-Yi Guy Date: Fri May 8 13:44:42 2009 -0700 iwlwifi: use #define instead of hard coded value Instead of hard coded value, use the define in iwl-commands.h for better code maintenance Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 43121432e2d3a9018c40e820b1e44f3f180aa0d6 Author: Abhijeet Kolekar Date: Fri May 8 13:44:41 2009 -0700 iwl3945: read rev id in nic config Read rev id in nic_config instead of nic_init. Nic_config has some checking for rev_id but we actually don't read the rev_id in there. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9906a07e1607e86957ac8780c35a9acf425c4c95 Author: Reinette Chatre Date: Fri May 8 13:44:40 2009 -0700 iwlwifi: more descriptive unsupported hardware message Somehow these pre-production cards are showing up in the community. With this message we hope that it will be clear that the hardware is not supported. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d6e933993fdad4a270c557fa5317f668bef1d824 Author: Mohamed Abbas Date: Fri May 8 13:44:39 2009 -0700 iwlagn: improve rate scale table search iwlagn rate scaling will periodically search other rate scale tables to switch to the best table regarding performance. In the past the number of search tables were 3. Every time the rate scale algorithm goes through these available tables in will stay in current table for some time before start searching again. Recent driver support more feature and antenna, so we have more tables to search. This patch make sure we go through all available tables. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7af2c460789a78d9c0d4dc7776fcb87acdc71052 Author: Johannes Berg Date: Fri May 8 13:44:38 2009 -0700 iwlwifi: clean up PS code This removes all the dead code that tries to adjust the power saving level based on the system AC state (inacceptable policy in the kernel) or based on overtemp conditions (unused). Also, pass _all_ policy wrt. enabling PS to mac80211, since we do not use the power_disabled internally I now use that to mirror the mac80211 CONF_PS setting. When mac80211 turns off CONF_PS we follow suit. This means that the user power level (which can currently only be set from sysfs) is not touched for mac80211 powersave changes. This means no "association status" checks are necessary since mac80211 will not allow power save to be enabled when not associated. Signed-off-by: Johannes Berg Acked-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f0f74a0e65a69d4cc579e60f76a30b38ad7dbe06 Author: Johannes Berg Date: Fri May 8 13:44:37 2009 -0700 iwlwifi: fix PS disable status race iwlwifi internally needs to keep track of whether PS is enabled in the firmware or not. To do this, it keeps a bit in the status flags, called STATUS_POWER_PMI. The code to set this bit looks as follows: static int iwl_set_power(struct iwl_priv *priv, void *cmd) { return iwl_send_cmd_pdu_async(priv, POWER_TABLE_CMD, sizeof(struct iwl_powertable_cmd), cmd, NULL); } int iwl_power_update_mode(...) { [...] if (final_mode != IWL_POWER_MODE_CAM) set_bit(STATUS_POWER_PMI, &priv->status); iwl_update_power_cmd(priv, &cmd, final_mode); cmd.keep_alive_beacons = 0; if (final_mode == IWL_POWER_INDEX_5) cmd.flags |= IWL_POWER_FAST_PD; ret = iwl_set_power(priv, &cmd); if (final_mode == IWL_POWER_MODE_CAM) clear_bit(STATUS_POWER_PMI, &priv->status); else set_bit(STATUS_POWER_PMI, &priv->status); if (priv->cfg->ops->lib->update_chain_flags && update_chains) priv->cfg->ops->lib->update_chain_flags(priv); [...] } Now, this bit really needs to track what the _firmware_ thinks, not what the driver thinks. Therefore, there is a race condition here -- the driver sets the bit before it knows that the async command sent to the card in the iwl_set_power function has been processed. As a result, the call to update_chain_flags() may think that the card has been woken up (PMI bit cleared) while in reality it hasn't processed the async POWER_TABLE_CMD yet. This leads to bugs -- any commands the update_chain_flags function sends can get stuck and subsequent commands also fail. The fix is almost trivial: since there's no reason to send an async command here (in fact, there almost never should be since many mac80211 callbacks can sleep) just make the function wait for the card to process the command and then return and clear the PMI bit. Signed-off-by: Johannes Berg Acked-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 19cc10870ece942d287241937944c237130f50f4 Author: Johannes Berg Date: Fri May 8 13:44:36 2009 -0700 iwlwifi: do proper hw restart When the microcode fails for any reason, ask mac80211 to recover instead of trying ourselves and failing at it. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 413ad50a5c15f3bae8075c15b101679f05c37a69 Author: Johannes Berg Date: Fri May 8 21:21:06 2009 +0200 mac80211: properly track HT operation_mode When we disassociate, we set the channel to non-HT which obviously invalidates any ht_operation_mode setting. But when we then associate with the next AP again, we might still have the ht_operation_mode from the previous AP cached and fail to configure the hardware with the new (but unchanged) operation mode. This patch fixes it by separately tracking whether our cache is valid. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9ed6bcce77f75d98af6ee07069deac6041948bee Author: Johannes Berg Date: Fri May 8 20:47:39 2009 +0200 mac80211: move HT operation mode BSS info There really is no need to have a separate struct for a single variable. The fact that it exists is due to the code legacy, but we can remove that now. Very simple. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5a9940118a616266183c53a9ee4352feadb9c2e8 Author: Ivo van Doorn Date: Fri May 8 18:30:43 2009 +0200 rt2x00: Fix chipset detection for rt73usb The lower 4 bytes of the chipset revision must contain a non-zero value. This bug was introduced by "rt2x00: Simplify rt2x00_check_rev". Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 99c84cb0692729088788d8e1d1cee670154176e4 Author: Johannes Berg Date: Fri May 8 14:12:21 2009 +0200 mac80211: improve scan timing The call to ieee80211_hw_config() is supposed to apply changes synchronously, so once it returns the parameters are applied to the hardware. Thus, there really is no need to delay the probing by the channel switch time again since the channel switch has already happened once we get to this code. Additionally, there is no need to wait for a NAV update (probe delay) when the channel is passively scanned. Remove that extra time too. This cuts scanning time from over 7 seconds to under 4 on ar9170, which is due to the number of channels scanned and ar9170's switch time being advertised as 135ms (my test now indicates it is about 77ms with the current driver, but the difference might also be due to using a different machine with different USB controllers). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f2ca3ea484a51dc7ea5b738510fd03cb6ca7e2e2 Author: Jouni Malinen Date: Fri May 8 12:36:03 2009 +0300 mac80211: MFP - Drop unprotected Action frames prior key setup When management frame protection (IEEE 802.11w) is used, unprotected Robust Action frames are not allowed prior to key configuration. However, unprotected Deauthentication and Disassociation frames are allowed at that point, but not after key configuration. Make ieee80211_drop_unencrypted() handle the special cases for MFP by separating the basic Data frame case from Management frame processing and handle the Management frames only if MFP has been negotiated. In addition, do not use sdata->drop_unencrypted for Management frames since the decision on whether to accept the frame depends on the key being configured. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 0c7c10c7cc6bc890d23c8c62b81b4feccd92124b Author: Jouni Malinen Date: Fri May 8 12:34:10 2009 +0300 mac80211: Drop unencrypted frames based on key setup When using nl80211, we do not have a mechanism to set sdata->drop_unencrypted. Currently, this breaks code that is supposed to drop unencrypted frames when protection is expected since ieee80211_rx_h_decrypt() is optimized to not set rx->key when the frame is not protected. This patch modifies ieee80211_rx_h_decrypt() to set rx->key for all frames and only skip decryption if the frame is not protected. This allows ieee80211_drop_unencrypted() to correctly drop frames even if drop_unencrypted is not set. The changes here are not enough to handle all cases, though. Additional patches will be needed to implement proper IEEE 802.1X PAE for station mode (currently, this is only used for AP mode) and some additional rules are needed for MFP to drop unprotected Robust Action frames prior to having PTK and IGTK configured. In theory, the unprotected frames could and should be dropped in ieee80211_rx_h_decrypt(). However, due to the special case with EAPOL frames that have to be allowed to be received unprotected even when keys are set, it is simpler to only set rx->key and allow the ieee80211_frame_allowed() function to handle the actual dropping of data frames after 802.11->802.3 header conversion. In addition, unprotected robust management frames are dropped before they are processed. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 782571f46fc7d2bbb0288ab0d676c47a88449a5c Author: Johannes Berg Date: Fri May 8 19:31:42 2009 +0200 iwlwifi: make iwl_set_rate static It's not needed outside iwl-core.c Signed-off-by: Johannes Berg Acked-by: Reinette Chatre Signed-off-by: John W. Linville commit 0b258582fef3a9b15b2372d99164859361faa8db Author: Johannes Berg Date: Fri May 8 09:42:33 2009 +0200 cfg80211: fix wext iw_freq parsing The function to parse a struct iw_freq has a stupid bug, it returns NULL when the channel cannot be found at all, but NULL is supposed to mean "auto". Fix this by checking the return value of ieee80211_get_channel() and returning ERR_PTR(-EINVAL) if it returned NULL (channel not found). This fixes an issue where you could say (in IBSS mode) iwconfig wlan0 channel 21 and it would use channel 1 instead because that's the first available channel with IBSS allowed (which is what the "auto" setting uses). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit aa837e1d6bd1a71b3c30c7738b6c29d41512fe7d Author: Johannes Berg Date: Thu May 7 16:16:24 2009 +0200 mac80211: set default QoS values according to spec We've never really cared about the default QoS (WMM) values, but we really should if the AP doesn't send any. This patch makes mac80211 use the default values according to 802.11-2007, and additionally syncs the default values when we disassociate so whatever the last AP said gets "unconfigured". Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 58905ca5b11a0ff3860f55b789cbbf052f7158a7 Author: Johannes Berg Date: Thu May 7 14:23:01 2009 +0200 mac80211: fix scan channel race When a software scan starts, it first sets sw_scanning, but leaves the scan_channel "unset" (it currently actually gets initialised to a default). Now, when something else tries to (re)configure the hardware in the window between these two events (after sw_scanning = true, but before scan_channel is set), the current code switches to the (unset!) scan_channel. This causes trouble, especially when switching bands and sending frames on the wrong channel. To work around this, leave scan_channel initialised to NULL and use it to determine whether or not a switch to a different channel should occur (and also use the same condition to check whether to adjust power for scan or not). Additionally, avoid reconfiguring the hardware completely when recalculating idle resulted in no changes, this was the problem that originally led us to discover the race condition in the first place, which was helpfully bisected by Pavel. This part of the patch should not be necessary with the other fixes, but not calling the ieee80211_hw_config function when we know it to be unnecessary is certainly a correct thing to do. Unfortunately, this patch cannot and does not fix the race condition completely, but due to the way the scan code is structured it makes the particular problem Pavel discovered (race while changing channel at the same time as transmitting frames) go away. To fix it completely, more work especially with locking configuration is needed. Bisected-by: Pavel Roskin Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 02018b39a75057541c7946a9173561d1a76a0bfe Author: Geert Uytterhoeven Date: Wed May 6 22:35:58 2009 +0200 wireless: WL12XX should depend on GENERIC_HARDIRQS m68k allmodconfig: | drivers/net/wireless/wl12xx/main.c: In function 'wl12xx_probe': | drivers/net/wireless/wl12xx/main.c:1273: error: implicit declaration of function 'set_irq_type' | make[1]: *** [drivers/net/wireless/wl12xx/main.o] Error 1 Signed-off-by: Geert Uytterhoeven Acked-by: Kalle Valo Signed-off-by: John W. Linville commit dc6382ced07d6bad61d0b591fb12ab5da7ca632c Author: Jouni Malinen Date: Wed May 6 22:09:37 2009 +0300 nl80211 : Add support for configuring MFP NL80211_CMD_ASSOCIATE request must be able to indicate whether management frame protection (IEEE 802.11w) is being used. mac80211 was able to use MFP in client mode only with WEXT, but the new NL80211_ATTR_USE_MFP attribute will allow this to be done with nl80211, too. Since we are currently using nl80211 for MFP only with drivers that use user space SME, only MFP disabled and required values are used. However, the NL80211_ATTR_USE_MFP attribute is an enum that can be extended with MFP optional in the future, if that is needed with some drivers (e.g., if the RSN IE is generated by the driver). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit a8679be2073392cf22a910bc25da0c7d36459845 Merge: 22f6dac 9dfd6ba Author: David S. Miller Date: Fri May 8 12:46:17 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 22f6dacdfcfdc792d068e9c41234808860498d04 Merge: 928f308 9b05126 Author: David S. Miller Date: Fri May 8 02:48:30 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: include/net/tcp.h commit f9dd6b52873ad9fda51a3881c80c96d06ee6a57d Author: Gabor Juhos Date: Wed May 6 09:47:30 2009 +0200 ath9k: remove redundant AR9285 checks The AR_SREV_9285_1[12]_OR_LATER macros already contains the AR_SREV_9285 check. Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 4f0fc7c39f2a224b939f22d4dca552b266319525 Author: Luis R. Rodriguez Date: Wed May 6 02:20:00 2009 -0400 ath9k: make private driver rate tables const On x86 this allows us to do the following small savings: shave off 23 % off of the module's data, and shave off 6 % off of the module's text. We save 456 bytes, for those counting. $ size ath9k.ko text data bss dec hex filename 250794 3628 1600 256022 3e816 ath9k.ko $ size ath9k-old.ko text data bss dec hex filename 239114 15308 1600 256022 3e816 ath9k-old.ko $ du -b ath9k.ko 4034244 ath9k.ko $ du -b ath9k-old.ko 4033788 ath9k-old.ko Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7c5a189dc6a43def594fedc7cd8f6886596b65de Author: Max Filippov Date: Wed May 6 01:47:02 2009 +0400 p54: call p54_wake_free_queues on every p54_free_skb and p54_rx_frame_sent Currently queues are stopped when their length reaches their length limit, but are restarted only when the size of freed range of packet buffer is not less than the size of the largest possible packet. This causes permanent queue stop on radio visibility loss in the middle of ping series: there is plenty of room in the packet buffer, but it is never freed more than 3 (size of 'best effort' queue) * 288 (ping packet plus headers) bytes at once. Signed-off-by: Max Filippov Signed-off-by: John W. Linville commit aec6795210db6ba3f4592056d41ac5b1ab41e980 Author: Jouni Malinen Date: Tue May 5 20:35:15 2009 +0300 mac80211: Comment the order of HT RX reorder handler vs. RX handlers We are currently processing block ack reordering as a separate task before all other RX handlers. In theory, this is wrong since this step should be done only after duplicate removal (see Figure 6-1 in IEEE 802.11n). However, moving this needs some work and the current situation is not too bad. Add a comment here so that this small detail does not get forgotten and who knows, maybe someone has some extra time to take a look at cleaning this up. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 4d050f1daed3babf6fcc337f862a245d31af4452 Author: Jouni Malinen Date: Tue May 5 20:35:14 2009 +0300 mac80211: Add a timeout for frames in the RX reorder buffer This patch allows skbs to be released from the RX reorder buffer in case they have been there for an unexpectedly long time without us having received the missing frames before them. Previously, these frames were only released when the reorder window moved and that could take very long time unless new frames were received constantly (e.g., TCP connections could be killed more or less indefinitely). This situation should not happen very frequently, but it looks like there are some scenarious that trigger it for some reason. As such, this should be considered mostly a workaround to speed up recovery from unexpected siutation that could result in connections hanging for long periods of time. The changes here will only check for timeout situation when adding new RX frames to the reorder buffer. It does not handle all possible cases, but seems to help for most cases that could result from common network usage (e.g., TCP retrying at least couple of times). For more completely coverage, a timer could be used to periodically check whether there are any frames remaining in the reorder buffer if no new frames are received. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 2d3babd11f91501f49c6af212e6795bd8954f4d4 Author: Jouni Malinen Date: Tue May 5 20:35:13 2009 +0300 mac80211: Use a shared function to release frames from RX reorder buf No need to duplicate the same code in two places (and that would be three after the followup patch). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 358623c22c9fd837b3b1b444377037f72553dc9f Author: Ivo van Doorn Date: Tue May 5 19:46:08 2009 +0200 rt2x00: Simplify rt2x00_check_rev rt2x00_check_rev() was too specific for rt2500usb and rt73usb, by adding the mask argument (instead of hardcoding it into the function itself) we can use the function in rt2800usb as well. v2: Fix revision mask for rt2800usb Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 6cfe62cd58da862db04d4eb61f218f65b0cedbb3 Author: Luis R. Rodriguez Date: Tue May 5 15:48:39 2009 -0400 mac80211: Fix sparse warning for ssid_len on ieee80211_sta_config_auth() net/mac80211/mlme.c:2079:28: warning: symbol 'ssid_len' shadows an earlier one net/mac80211/mlme.c:2022:12: originally declared here ssid_len is already being declared and checked above so there is no need for it again. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 83f8b478ff5ed7d7df0bf91336bbede7b4714771 Author: John W. Linville Date: Wed May 6 14:16:15 2009 -0400 p54: correct merge damage from "p54: more SoftLED updates" Ooops... Signed-off-by: John W. Linville commit 8a7130404948b966e98b1285e777972b4b3f2fa2 Author: Alexander Beregalov Date: Mon May 4 20:46:25 2009 +0400 ar9170: fix build when !CONFIG_PM Fix this build error when CONFIG_PM is not set: drivers/net/wireless/ath/ar9170/usb.c: In function 'ar9170_usb_probe': drivers/net/wireless/ath/ar9170/usb.c:692: error: 'struct usb_device' has no member named 'reset_resume' Signed-off-by: Alexander Beregalov Signed-off-by: John W. Linville commit 7738231f98578c8cd5b367441b4aa79ce864856f Author: Johannes Berg Date: Mon May 4 17:52:10 2009 +0200 mac80211: report operating frequency rather than current It's not very helpful to see, in iwconfig, the current frequency the card is tuned to if that frequency is currently somewhere across the board because we're scanning. Since we keep track of the frequency the user wants, display that instead. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1b06bb4087d195d8289919df2f4d95ec3b89769e Author: Luis R. Rodriguez Date: Sat May 2 00:34:48 2009 -0400 cfg80211: make nl80211_send_mlme_timeout() static Fixes sparse complaint: CHECK net/wireless/nl80211.c net/wireless/nl80211.c:3694:6: warning: symbol 'nl80211_send_mlme_timeout' was not declared. Should it be static? Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 13792578c88961256dd30e3a5d3fa1ac1ec9a7e0 Author: Hauke Mehrtens Date: Fri May 1 13:12:36 2009 +0200 p54usb: Fixes compile error with CONFIG_PM=n /drivers/net/wireless/p54/p54usb.c: In function 'p54u_probe': /drivers/net/wireless/p54/p54usb.c:923: error: 'struct usb_device' has no member named 'reset_resume' In the struct usb_device the reset_resume attribute is only available when CONFIG_PM is defined. Signed-off-by: Hauke Mehrtens Signed-off-by: John W. Linville commit 928841b1538df117658ec5977bcf336c27f7747b Author: Greg Kroah-Hartman Date: Thu Apr 30 23:02:47 2009 -0700 Wireless: remove driver_data direct access of struct device In the near future, the driver core is going to not allow direct access to the driver_data pointer in struct device. Instead, the functions dev_get_drvdata() and dev_set_drvdata() should be used. These functions have been around since the beginning, so are backwards compatible with all older kernel versions. Cc: John W. Linville Cc: linux-wireless@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: John W. Linville commit 8bce6121706dd82c266c3f527e592abfb3e164d1 Author: Bob Copeland Date: Fri May 1 08:20:07 2009 -0400 wl12xx: correct printk format warnings Fixes warnings: drivers/net/wireless/wl12xx/main.c:87: warning: int format, different type arg (arg 2) drivers/net/wireless/wl12xx/main.c: In function `wl12xx_fetch_nvs': drivers/net/wireless/wl12xx/main.c:125: warning: int format, different type arg (arg 2) drivers/net/wireless/wl12xx/wl1251.c: In function 'wl1251_upload_firmware': drivers/net/wireless/wl12xx/wl1251.c:94: warning: int format, different type arg (arg 2) drivers/net/wireless/wl12xx/wl1251.c:141: warning: int format, different type arg (arg 2) Signed-off-by: Bob Copeland Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 4e8e2c824027ed433be3c599294bf093a120ad9d Author: Tomas Winkler Date: Thu Apr 30 13:56:29 2009 -0700 iwlwifi: replace test_and_set_bit by set_bit in clear stations function This patch replaces test_and_set_bit by set_bit since the bit is not tested anyway Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit a30199f129e17998f802d3307907560431e78493 Author: Wey-Yi Guy Date: Thu Apr 30 13:56:28 2009 -0700 iwlwifi: "is_fat" bit in rate scale match RXON flag This patch change the "is_fat" checking in rate scale to use iwl_is_fat_tx_allowed() to match the sta and RX_ON command setting. Signed-off-by: Wey-Yi Guy Tested-by: Conrad Kostecki Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 286d94906587901851906a5e2ddc09bc1a7ba1d9 Author: Reinette Chatre Date: Thu Apr 30 13:56:27 2009 -0700 iwlagn: disable PS support for iwlagn Some issues in PS prevent us from supporting it reliably. When 4965 goes to sleep it stores some data in host DRAM, reads it back when device wakes up. In 4965 there is a problem that the data is not correct when ucode starts using it upon wakeup. For all iwlagn devices there is a problem where command is sent when PS is enabled. At the moment there is a locking problem with priv->lock not being held and thus not requesting nic access correctly. We disable PS until these issues have been resolved. Signed-off-by: Reinette Chatre Signed-off-by: Mohamed Abbas Signed-off-by: John W. Linville commit 722404983b9deb21e4f786224201ca2ab27a1c48 Author: Abhijeet Kolekar Date: Thu Apr 30 13:56:26 2009 -0700 iwl3945: fix lock dependency Patch seperates rx_used and rx_free into two different atomic contexts. We can now avoid using GFP_ATOMIC for skb allocation and use GFP_KERNEL. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 84379cba44042a4caf793f821be8bd1a9b8235c2 Author: Paride Legovini Date: Thu Apr 30 15:55:52 2009 -0400 Add LED support for AR5BXB6 IBM Thinkpad PCIe adapters Add LED support on the IBM ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6), found on the IBM/Lenovo Thinkpad X60/T60/Z60 series. Signed-off-by: Paride Legovini Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 6752ee90aa7c933294a10dbd9ea51f12dece7eb1 Author: Bob Copeland Date: Thu Apr 30 15:55:51 2009 -0400 ath5k: use ctl settings based on current regdomain Update ath5k to use the ctl settings for tx power based on current regulatory domain. Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 57e6c56dbb52d680f61dd629759fe2974840ed93 Author: Nick Kossifidis Date: Thu Apr 30 15:55:50 2009 -0400 ath5k: Add Spur filter support on newer chips * Add spur filter support for RF5413 and later chips Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 2bed03ebf62f9d013a455209bf30d7e086120443 Author: Nick Kossifidis Date: Thu Apr 30 15:55:49 2009 -0400 ath5k: Implement antenna control * Add code to support the various antenna scenarios supported by hw * For now hardcode the default scenario (single or dual omnis with tx/rx diversity working and tx antenna handled by session -hw keeps track on which antenna it got ack from each ap/station and maps each ap/station to one of the antennas-). Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 6f5f39c95af519c24c0187950147eb79d07d1940 Author: Jiri Slaby Date: Thu Apr 30 15:55:48 2009 -0400 ath5k: Enable AP mode After some debuging we were hitting the following bugs so far... * Due to huge channel list hostapd couldn't get infos from the driver and couldn't set the channel. If we manualy set the channel after hostapd starts (by setting channel to 0 -auto), beacons are sent but they wont show up on scan because they are malformed (they have channel = 0 because hostapd doesn't update the channel info -this is probably a hostapd bug so i'm CCing Jouni) and they get dropped. Bob fixed this by only allowing standard channels to be registered so now hostapd works as expected. * Docs (and HAL source) say that we must write 0 on timer0 when operating on AP mode to start TSF increment but this seems to mess with DBA in many cases and beacon queue never gets started. We fixed that on the previous patch. We have some more things to deal with... * For some reason (hw bug or something else) after restarting hostapd a few times, beacon inteval seems to change from 100ms to a sec (we get one beacon per sec). * We need to set sleep timers on STA mode and enable power saving + support PCF. ...but i think it's time we enable AP support "officialy" so that we can get more feedback from users. I ran ath5k with the mentioned patches + hostapd 0.6.8 and AP mode worked fine (it had some less throughput on my tests than IBSS but it worked). Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 428cbd4ff4d0f2423f49e499f499f04a636cb152 Author: Nick Kossifidis Date: Thu Apr 30 15:55:47 2009 -0400 ath5k: Beaconing fixes * Write next beacon timer even on AP mode since without this we get no beacons + ath9k does it too. Docs say that we must write 0 on this register on AP mode to start TSF increment, we do both to be on the safe side. * Fix num_tx_pending function, we never read the register :P that's why we got all those "beacon queue 7 didn't stop messages". * Put full prioriy on beacon queue, lock all queues with lower priority using the arblock and also bypass any arblock by seting the arblock ignore flag. * For the CAB queue (do we need this thing ?, it seems crap) since it's supposed to fire up after each beacon (we don't use it on driver part, ath9k/MadWiFi does), don't make it DBA gated but instead make it fire after each beacon by using the beacon sent gated flag. * Increase bmiss threshold to 10, that's what we used on MadWiFi for a long time. Also when we have pending frames on the beacon queue (we got a beacon that didn't make it on the air) it's more likely that the beacon queue never started, probably due to faulty DBA setting, so change that "beacon queue didn't stop" message. Tested this with AP mode and IBSS mode and seems to work fine ;-) Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 1889ba0a48688b639c2b2e9e1b0fd8f84e2c37d1 Author: Nick Kossifidis Date: Thu Apr 30 15:55:46 2009 -0400 ath5k: Put remaining EEPROM data on ee struct * Put remaining EEPROM information on ee struct and remove is_hb63 function. Now we also have rfkill stuff available. Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit cd417519086b223562b50c364d7beab12ef4c62c Author: Nick Kossifidis Date: Thu Apr 30 15:55:45 2009 -0400 ath5k: Read Spur channels from EEPROM * Read Spur channel information from EEPROM and use default channels for RF5413 compatible chips that don't have this info on EEPROM. Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit a082381044ce026e83dbd17f8837722b028fc07d Author: Nick Kossifidis Date: Thu Apr 30 15:55:44 2009 -0400 ath5k: Allow user/driver to set txpower * Now that we have regulatory control enable the driver to set txpower on hw * Also use txpower table offset so that we can match power range set by user/driver with indices on power table. Tested 2 different cards (a CM9 and an RF5112-based ubnt) and got the same output using a remote machine to measure per-packet rssi (conected the cards using attenuators). I also switched between various tx power levels and i saw an equal power change on the remote machine (so txpower changes as expected) and verified that we have the same output on each rate. Signed-off-by: Nick Kossifidis Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 15e469284d5e89c9113379b68566b0e059a97704 Author: Ivo van Doorn Date: Tue Apr 28 20:14:58 2009 +0200 rt2x00: Synchronize initialization with rt2870 driver Ralink released a new rt2870 driver, these are the obvious differences I could find. It doesn't same to make my device work better, but neither does it seem to regress... Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit e430d6074dede3b4d7d87e30296fe3894cb4709c Author: Ivo van Doorn Date: Mon Apr 27 23:58:31 2009 +0200 rt2x00: Add new USB ID for rt2800usb Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 2f01a1f58889fbfeb68b1bc1b52e4197f3333490 Author: Kalle Valo Date: Wed Apr 29 23:33:31 2009 +0300 wl12xx: add driver wl12xx is a driver for TI wl1251 802.11 chipset designed for embedded devices, supporting both SDIO and SPI busses. Currently the driver supports only SPI. Adding support 1253 (the 5 GHz version) should be relatively easy. More information here: http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=4711&navigationId=12494&templateId=6123 (Collapsed original sequence of pre-merge patches into single commit for initial merge. -- JWL) Signed-off-by: Kalle Valo Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit d53d9e67b55f6a9fc3f836c5c392eb41ce5676f4 Author: Ivo van Doorn Date: Sun Apr 26 15:47:48 2009 +0200 rt2x00: Implement support for rt2800usb Add support for the rt2800usb chipset. Current problems: * Cannot scan 11n AP's * No TX during first minute after association * Broken Hardware encryption Includes various patches from Mattias, Felix, Xose and Axel. Signed-off-by: Mattias Nissler Signed-off-by: Felix Fietkau Signed-off-by: Xose Vazquez Perez Signed-off-by: Axel Kollhofer Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 206eade5a68f7a06adbe7c65e47fd88843ad0546 Author: Alban Browaeys Date: Wed Apr 29 22:00:23 2009 +0200 rt2x00: Style fix for interval defines Extra parenthesis are not needed in these 2 cases, all other defines in rt2x00 are done without parenthesis so just fixup these 2 cases. Signed-off-by: Alban Browaeys Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit fb4a3d35a26aa8ef5049f10666e6a163b4c32855 Author: Gabor Juhos Date: Wed Apr 29 13:01:58 2009 +0200 ath9k: uninline ath9k_io{read,write}32 routines The spin_lock handling uses lots of instructions on some archs. With this patch the size of the ath9k module will be significantly smaller. Signed-off-by: Gabor Juhos Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5cff20e6c5a6591a79d3b027af222870f52bb550 Author: Johannes Berg Date: Wed Apr 29 12:26:17 2009 +0200 mac80211: tell driver when idle When we aren't doing anything in mac80211, we can turn off much of the hardware, depending on the driver/hw. Not doing anything, aka being idle, means: * no monitor interfaces * no AP/mesh/wds interfaces * any station interfaces are in DISABLED state * any IBSS interfaces aren't trying to be in a network * we aren't trying to scan By creating a new function that verifies these conditions and calling it at strategic points where the states of those conditions change, we can easily make mac80211 tell the driver when we are idle to save power. Additionally, this fixes a small quirk where a recalculated powersave state is passed to the driver even if the hardware is about to stopped completely. This patch intentionally doesn't touch radio_enabled because that is currently implemented to be a soft rfkill which is inappropriate here when we need to be able to wake up with low latency. One thing I'm not entirely sure about is this: phy0: device no longer idle - in use wlan0: direct probe to AP 00:11:24:91:07:4d try 1 wlan0 direct probe responded wlan0: authenticate with AP 00:11:24:91:07:4d wlan0: authenticated > phy0: device now idle > phy0: device no longer idle - in use wlan0: associate with AP 00:11:24:91:07:4d wlan0: RX AssocResp from 00:11:24:91:07:4d (capab=0x401 status=0 aid=1) wlan0: associated Is it appropriate to go into idle state for a short time when we have just authenticated, but not associated yet? This happens only with the userspace SME, because we cannot really know how long it will wait before asking us to associate. Would going idle after a short timeout be more appropriate? We may need to revisit this, depending on what happens. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9955151df7c6452cae2ed9649f53d265c91cf155 Author: Gábor Stefanik Date: Thu Apr 23 19:36:14 2009 +0200 mac80211: Warn if the rate controller requests retries for a NO_ACK frame To deter future rate scaling algorithm writers from requesting NO_ACK packets to be retried, throw a WARN_ON_ONCE if the algorithm hands us a try count over 1 for NO_ACK packet. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 97d3f458a1e3350dfcbdc3b6aefa75d20d59ee17 Author: Gábor Stefanik Date: Thu Apr 23 19:36:11 2009 +0200 ath9k: Fix handling of retry count of NO_ACK frames Check for IEEE80211_TX_CTL_NO_ACK instead of is_multicast_ether_addr when determining whether to use lowest rate without retries. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 514d65c18ee3595f7f9c9132895ed449f911ecd4 Author: Gábor Stefanik Date: Thu Apr 23 19:36:08 2009 +0200 iwlwifi: Fix handling of retry count of NO_ACK frames in iwl-{3945|agn}-rs Make iwl-{3945|agn}-rs check for IEEE80211_TX_CTL_NO_ACK instead of is_multicast_ether_addr when determining whether to use the lowest rate, and set the retry count to 0 (total try count = 1) if IEEE80211_TX_CTL_NO_ACK is set. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 922368414e5700d1ed51510e54137359297d78e7 Author: Gábor Stefanik Date: Thu Apr 23 20:06:06 2009 +0200 mac80211: Fix handling of retry count of NO_ACK frames in PID Make PID check for IEEE80211_TX_CTL_NO_ACK instead of is_multicast_ether_addr when determining whether to use the lowest rate, and set the retry count to 0 (total try count = 1) if IEEE80211_TX_CTL_NO_ACK is set. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 4edf040afc9237aa8cc90bcf54b521ac47d1ed78 Author: Gábor Stefanik Date: Thu Apr 23 19:36:00 2009 +0200 mac80211: Fix handling of retry count of NO_ACK frames in minstrel Make the retry count zero (total try count = 1) for frames with IEEE80211_TX_CTL_NO_ACK set. Also remove the check for is_multicast_ether_addr in use_low_rate, which is redundant because all multicasts have IEEE80211_TX_CTL_NO_ACK set. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 2516baa63bc7d05a6573a0f584135484ed182a87 Author: Bob Copeland Date: Mon Apr 27 22:18:10 2009 -0400 ath5k: correct interrupt storm warning Ben Greear points out that the "too many interrupts" message will never print in the intended case since the interrupt counter will be -1 after the loop. Change it to pre-decrement so it will be 0 on the thousandth iteration. Cc: Ben Greear Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 35f00cfcc06bb85e0659f9847400518008d78145 Author: Ivo van Doorn Date: Sun Apr 26 16:09:32 2009 +0200 rt2x00: Implement support for 802.11n Extend rt2x00lib capabilities to support 802.11n, it still lacks aggregation support, but that can be added in the future. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 9f1661718c7fcf82e25c6aed20b729ee372d9d65 Author: Ivo van Doorn Date: Sun Apr 26 16:08:50 2009 +0200 rt2x00: Add support for L2 padding during TX/RX Some hardware require L2 padding between header and payload because both must be aligned to a 4-byte boundary. This hardware also is easier during the RX path since we no longer need to move the entire payload but rather only the header to remove the padding (mac80211 only wants the payload to be 4-byte aligned). Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 9eb4e21e289beba9cfe34f24920eee83c144e62f Author: Ivo van Doorn Date: Sun Apr 26 16:08:30 2009 +0200 rt2x00: Move iv_len into tx descriptor data By placing the iv_len into the tx descriptor data and by passing this data to the crypto IV handlers we can save multiple calls to ieee80211_get_hdrlen_from_skb() and some if-statements when copying/removing the IV data from the outgoing frame. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit bbb33881ae5bfe4197a005dc03b29b7dcc07fa28 Author: Tobias Klauser Date: Sun Apr 26 14:58:40 2009 +0200 ath5k: Storage class should be before const qualifier commit 8e218fb24faef0bfe95bc91b3c05261e20439527 reverted the previous patch (commit 925be8a3077351edbf2b59ca689105df214a0792). The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser Acked-by: Jiri Slaby Signed-off-by: John W. Linville commit ba5101d098d6a8471d1a3147fb610b2ee3dbb397 Author: Roel Kluin Date: Sun Apr 26 14:40:59 2009 +0200 ar9170: wrong test on outlen in ar9170_usb_exec_cmd() ? remove redundant test: outlen is unsigned Signed-off-by: Roel Kluin Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 44e1b98f733e48bb781e4229120e1de5e0c9fdbb Author: Michael Buesch Date: Sun Apr 26 11:27:33 2009 +0200 cfg80211: Use the correct IE buffer pointer If the IE buffer was allocated, the pub.information_elements pointer was also changed to the allocated space. So we must not assume anymore that the pointer points at the "found" tail. So if it was allocated previously, take the codebranch that grows the buffer size (if necessary) and put the data into the allocated buffer. Signed-off-by: Michael Buesch Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 273de92c8461776aaac7b32f8d5889a72b38ea10 Author: Michael Buesch Date: Sat Apr 25 22:28:55 2009 +0200 cfg80211: Remove unnecessary ksize() call This removes an unnecessary ksize() call. krealloc() will do this test internally and won't perform any allocation if the space is already sufficient to hold the data. So remove the redundant check. Signed-off-by: Michael Buesch Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit 90ccda9baccec8223ca5456fbe49adf7264d1543 Author: Christian Lamparter Date: Sat Apr 25 21:32:09 2009 +0200 ar9170usb: reset device on resume This patch takes care of an outstanding comment in "[PATCH] ar9170usb: fix hang on resume" commit message. >However, the device does not accept the firmware on resume. >and it will exit with: > >> firmware part 1 upload failed (-71). >> device is in a bad state. please reconnect it! Reported-by: Johannes Berg Signed-off-by: Christian Lamparter Tested-by: Johannes Berg Signed-off-by: John W. Linville commit 1ca5f2e94c40b04d5dec437cd41fd5ba12aaac31 Author: Christian Lamparter Date: Sat Apr 25 21:12:09 2009 +0200 p54usb: rework driver for resume This patch redo the driver code so that p54usb no longer hangs the kernel on resume. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit a406ac0dc15b22807b65f5a6590b9cb34d99d4ab Author: Christian Lamparter Date: Sat Apr 25 21:11:55 2009 +0200 p54usb: remove some dead code Since "p54: prevent upload of wrong firmwares" we no longer allow outdated LM86 firmwares to be uploaded on ISL3887 (LM87) devices. Therefore we can purge this buggy legacy code altogether. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit ded7a7eaab2a39b7b5c36a2ec3be46f6ebcedba5 Author: Jiri Slaby Date: Sat Apr 25 14:09:23 2009 +0200 ath5k: 5211, don't crypt every protected frame Set null key type even on ar5211, otherwise it en/decrypts every frame with protected bit set which renders the card unusable on encrypted networks. Signed-off-by: Jiri Slaby Cc: Luis R. Rodriguez Cc: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit aeca78b9b094d00cccca39e9a1055c74ad83ea69 Author: Andrew Morton Date: Fri Apr 24 15:26:02 2009 -0700 net/rfkill/rfkill.c: fix build with CONFIG_RFKILL_LEDS=n net/rfkill/rfkill.c: In function 'update_rfkill_state': net/rfkill/rfkill.c:99: error: implicit declaration of function 'rfkill_led_trigger' Caused by : commit 492301fb5d12e4a77a1010ad2b6f1ed306014123 : Author: Larry Finger : Date: Thu Apr 9 22:14:19 2009 -0500 : : rfkill: Fix broken rfkill LED in 2.6.30-rc1 Cc: Henrique de Moraes Holschuh Cc: Ivo van Doorn Cc: Michael Buesch Cc: David S. Miller Cc: Larry Finger Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 0ef9ccdd9ec7f2cf28d0605c216d853687f5291d Author: Chris Wright Date: Fri Apr 24 14:09:31 2009 -0700 cfg80211: remove superfluous !last_request check in reg_device_remove() Commit 0ad8acaf "cfg80211: fix NULL pointer deference in reg_device_remove()" added a check that last_request is non-NULL, rendering the 2nd check superfluous. While there, rearrange the code a bit so it's a little more straight forward. Signed-off-by: Chris Wright Signed-off-by: John W. Linville commit 2cfb1f5e20f260e6ff306ba181efee956ba48f54 Author: Christian Lamparter Date: Fri Apr 24 21:41:18 2009 +0200 ar9170: uncomment powermgt case handle This patch uncomment a few lines that survived the RFCs. However, there is not much to worry about, since AP mode is not officially advertised and supported. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 083c4687bc3abc315c73830b9c74ad67e005d8c2 Author: Christian Lamparter Date: Fri Apr 24 21:35:57 2009 +0200 ar9170: handle otus' A-MPDU density definitions Otus uses slightly different set of "Minimum MPDU Start Spacing" values than the 802.11n D2.0 specifies. (the whole table is shifted by one and therefore the 16us spacing is not officially available!) And while we're at it, we also initialize our MAC's density register. So, this annoying _feature_ will not break TX A-MPDU later. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 16cf438a1eca2b7206bd7ac7763637c2a87c00c6 Author: Johannes Berg Date: Fri Apr 24 15:15:25 2009 +0200 mac80211: fix probe response processing Due to the use of a _REQ_DIRECT_PROBE bit, which is unnecessary (and I wonder why it was done that way), an interesting situation can arise: 1) we try to probe an access point 2) the AP doesn't response in time 3) we tell userspace that we gave up 4) the AP suddenly responds 5) we auth/assoc with the AP I've seen 4) happen in testing with hostapd SIGSTOPped, and when SIGCONTinued it processes the probe requests that came in and send responses. But 5) is not supposed to happen after we tell everybody we've given up on the AP. To fix this, remove the _REQ_DIRECT_PROBE request bit, and process probe responses when we're in the relevant MLME state, namely IEEE80211_STA_MLME_DIRECT_PROBE. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d91f190c412aff940a46cabaccf114361c133605 Author: Johannes Berg Date: Fri Apr 24 15:13:54 2009 +0200 mac80211_hwsim: fix bogus warning A typo slipped into my patch to configure beacon intervals properly -- this warning is supposed to trigger when the beacon interval is zero, not non-zero. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e61f234079b49c7e075b12551797fc4954704019 Author: Jouni Malinen Date: Fri Apr 24 00:00:00 2009 +0300 nl80211: Send timeout event on failed direct probe If the direct probe times out, we need to send the authentication timeout event to notify SME in the same way as we notify on timeout with authentication frames since the direct probe is run as part of the authentication attempt. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 2448798133d747ad339e57099e32a1d1e68aca1c Author: Johannes Berg Date: Thu Apr 23 18:52:52 2009 +0200 mac80211: add driver ops wrappers In order to later add tracing or verifications to the driver calls mac80211 makes, this patch adds static inline wrappers for all operations. All calls are now written as drv_(local, ...); instead of local->ops->(&local->hw, ...); Where necessary, the wrappers also do existence checking and return default values as appropriate. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2d0ddec5b2b859f06116f631fc0ffe94fbceb556 Author: Johannes Berg Date: Thu Apr 23 16:13:26 2009 +0200 mac80211: unify config_interface and bss_info_changed The config_interface method is a little strange, it contains the BSSID and beacon updates, while bss_info_changed contains most other BSS information for each interface. This patch removes config_interface and rolls all the information it previously passed to drivers into bss_info_changed. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 57c4d7b4c4986037be51476b8e3025d5ba18d8b8 Author: Johannes Berg Date: Thu Apr 23 16:10:04 2009 +0200 mac80211: clean up beacon interval settings We currently have two beacon interval configuration knobs: hw.conf.beacon_int and vif.bss_info.beacon_int. This is rather confusing, even though the former is used when we beacon ourselves and the latter when we are associated to an AP. This just deprecates the hw.conf.beacon_int setting in favour of always using vif.bss_info.beacon_int. Since it touches all the beaconing IBSS code anyway, we can also add support for the cfg80211 IBSS beacon interval configuration easily. NOTE: The hw.conf.beacon_int setting is retained for now due to drivers still using it -- I couldn't untangle all drivers, some are updated in this patch. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f3b85252f081581a8f257545ed748062dce7798b Author: Johannes Berg Date: Thu Apr 23 16:01:47 2009 +0200 mac80211: fix scan races and rework scanning There are some places marked /* XXX maybe racy? */ and they really are racy because there's no locking. This patch reworks much of the scan code, and introduces proper locking for the scan request as well as the internal scanning (which is necessary for IBSS/managed modes). Helper functions are added to call the scanning code whenever necessary. The scan deferring is changed to simply queue the scanning work instead of trying to start the scan in place, the scanning work will then take care of the rest. Also, currently when internal scans are requested for an interface that is trying to associate, we reject such scans. This was not intended, the mlme code has provisions to scan twice when it can't find the BSS to associate with right away; this has never worked properly. Fix this by not rejecting internal scan requests for an interface that is associating. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2d72289095e9621158acf1d59a830cfe920fa93b Author: Johannes Berg Date: Thu Apr 23 10:38:26 2009 +0200 mac80211: internally clear failed scans properly When the IBSS code wants to scan, but that fails, we can get stuck in a situation where you can never scan again. Fix this by properly notifying ourselves when the scan request has failed. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9ccebe6148bcb0aba2d89743df2ff182ced505ec Author: Johannes Berg Date: Thu Apr 23 10:32:36 2009 +0200 mac80211: rename max_sleep_interval to max_sleep_period Kalle points out that max_sleep_interval is somewhat confusing because the value is measured in beacon intervals, and not in TU. Rename it to max_sleep_period to be consistent with things like DTIM period that are also measured in beacon intervals. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d5edaedc16ebd0635435dec068d49e07a76ba7d9 Author: Johannes Berg Date: Wed Apr 22 23:02:51 2009 +0200 mac80211: fix PS vs. scan race When somebody changes the PS parameters while scanning is in progress, we enable PS -- during the scan. This is clearly not desirable, and we can just abort enabling PS when scanning since when the scan finishes it will be taken care of. Signed-off-by: Johannes Berg Reviewed-by: Kalle Valo Signed-off-by: John W. Linville commit 0e41f715c04f85a40ae6531d660be2241717be1c Author: Johannes Berg Date: Thu Apr 23 11:48:56 2009 +0200 mac80211: fix various problems in ibss code There are a few problems in the IBSS code: a) it tries to activate interfaces that are down after scanning b) it crashes after scanning on an IBSS iface that isn't active c) since the ssid_len is used as a flag, need to make it visible only after all other settings are set, this helps protect against b) For b), we get a system crash: wlan0: Creating new IBSS network, BSSID ce:f9:88:76:1e:4d BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<...>] ieee80211_sta_find_ibss+0x294/0x37d [mac80211] Call Trace: [<...>] ieee80211_ibss_notify_scan_completed+0x0/0x88 [mac80211] Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit aba7453037c3a90714caae77a622dceaf1173786 Merge: a4fe91e 93af7ac Author: David S. Miller Date: Wed Apr 29 20:30:35 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: Documentation/isdn/00-INDEX drivers/net/wireless/iwlwifi/iwl-scan.c drivers/net/wireless/rndis_wlan.c net/mac80211/main.c commit 495a1b4eff1a216a3ea171ac137f1807e6555f52 Merge: ad8affd d3feaf5 Author: David S. Miller Date: Sat Apr 25 16:36:46 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 Conflicts: net/mac80211/pm.c commit d3feaf5ad12259927039a675cfb25dc342b403ab Author: John W. Linville Date: Fri Apr 24 15:35:42 2009 -0400 wireless: remove some (bogus?) 'may be used uninitialized' warnings net/mac80211/tx.c: In function ‘ieee80211_tx_h_select_key’: net/mac80211/tx.c:448: warning: ‘key’ may be used uninitialized in this function drivers/net/wireless/ath/ath9k/rc.c: In function ‘ath_rc_rate_getidx’: drivers/net/wireless/ath/ath9k/rc.c:815: warning: ‘nextindex’ may be used uninitialized in this function drivers/net/wireless/hostap/hostap_plx.c: In function ‘prism2_plx_probe’: drivers/net/wireless/hostap/hostap_plx.c:438: warning: ‘cor_index’ may be used uninitialized in this function drivers/net/wireless/hostap/hostap_plx.c:438: warning: ‘cor_offset’ may be used uninitialized in this function Signed-off-by: John W. Linville commit 9b171ffe1b3004587f4a90ef293531a4a262e538 Author: John W. Linville Date: Fri Apr 24 15:30:28 2009 -0400 libertas: fix format warning drivers/net/wireless/libertas/if_spi.c: In function ‘if_spi_c2h_data’: drivers/net/wireless/libertas/if_spi.c:733: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ Signed-off-by: John W. Linville commit 5802b140ed52957ad150eaf40239a95f5f45fbd3 Merge: 09488e2 29fe1b4 Author: David S. Miller Date: Thu Apr 23 04:08:24 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/iucv/af_iucv.c commit 1965c85331ed29dc4fd32479ff31663e3e9a518f Author: Jouni Malinen Date: Wed Apr 22 21:38:25 2009 +0300 nl80211: Add event for authentication/association timeout SME needs to be notified when the authentication or association attempt times out and MLME has stopped processing in order to allow the SME to decide what to do next. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit ff2ba188fc5eaae529cb2ef9b127c3ca2a7df4b9 Author: John W. Linville Date: Wed Apr 22 13:27:08 2009 -0400 rndis_wlan: select CFG80211 in Kconfig Signed-off-by: John W. Linville commit 04fe20372e70685d9f15966216cdffd3795fe590 Author: Johannes Berg Date: Wed Apr 22 18:44:37 2009 +0200 mac80211: calculate maximum sleep interval The maximum sleep interval, for powersave purposes, is determined by the DTIM period (it may not be larger) and the required networking latency (it must be small enough to fulfil those constraints). This makes mac80211 calculate the maximum sleep interval based on those constraints, and pass it to the driver. Then the driver should instruct the device to sleep at most that long. Note that the device is responsible for aligning the maximum sleep interval between DTIMs, we make sure it's not longer but it needs to make sure it's between them. Also, group some powersave documentation together and make it more explicit that we support managed mode only, and no IBSS powersaving (yet). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 8e30bc55de98c000b0b836cb42525c82f605f191 Author: Johannes Berg Date: Wed Apr 22 17:45:38 2009 +0200 nl80211: allow configuring IBSS beacon interval Make the JOIN_IBSS command look at the beacon interval attribute to see if the user requested a specific beacon interval, if not default to 100 TU (wext too). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e255d5eb2b478eec1416b46aea03798b64355402 Author: Johannes Berg Date: Wed Apr 22 12:40:07 2009 +0200 mac80211: remove IEEE80211_CONF_CHANGE_DYNPS_TIMEOUT Just setting IEEE80211_CONF_CHANGE_PS should be sufficient for changes in the power saving things. The driver already tells us whether it wants notification of dynps via the "have dynps support" hw flag. Signed-off-by: Johannes Berg Reviewed-by: Kalle Valo Signed-off-by: John W. Linville commit 1d4df3a50f40a731fc03c86a76535ed141b0e4bc Author: Johannes Berg Date: Wed Apr 22 11:25:43 2009 +0200 mac80211: fix variable truncation on 32-bit Stephen Rothwell reported these warnings from a 32-bit build: net/mac80211/mlme.c:1771: warning: left shift count >= width of type net/mac80211/mlme.c:1772: warning: left shift count >= width of type net/mac80211/mlme.c:1773: warning: left shift count >= width of type net/mac80211/mlme.c:1774: warning: left shift count >= width of type net/mac80211/mlme.c:1775: warning: left shift count >= width of type This shows a bug in my code -- BIT(X) uses just "1 << X" which means a 32-bit integer on 32-bit platforms, but the code here needs a u64 on all platforms. Fix this by using "1ULL << X" instead of BIT(X). Thanks Stephen! Reported-by: Stephen Rothwell Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit eb1a685e07310b5137c561e25ab738292db2c8a5 Author: Jussi Kivilinna Date: Tue Apr 21 19:48:15 2009 +0300 rndis_wlan: free priv correctly when rndis_wext_bind fails Private structure is allocated by wiphy_new now, so use wiphy_free instead of kfree. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 8d4d99ae89a8845a1d63b0529dd98da28dc0ff65 Author: Jussi Kivilinna Date: Tue Apr 21 19:48:07 2009 +0300 rndis_wlan: fix initialization order for workqueue&workers rndis_wext_link_change() might be called from rndis_command() at initialization stage and priv->workqueue/priv->work have not been initialized yet. This causes invalid opcode at rndis_wext_bind on some brands of bcm4320. Fix by initializing workqueue/workers in rndis_wext_bind() before rndis_command is used. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit caa6dfadebee2098e9c5ece1d5efae96a6926d0f Author: Johannes Berg Date: Tue Apr 21 10:55:10 2009 +0200 rndis_wlan: make some symbols static sparse complains, correctly, about these: drivers/net/wireless/rndis_wlan.c:418:21: warning: symbol 'rndis_config_ops' was not declared. Should it be static? drivers/net/wireless/rndis_wlan.c:423:6: warning: symbol 'rndis_wiphy_privid' was not declared. Should it be static? Fix that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 29b4a4f7c7b588b5568edd0da42f38623b81fc66 Author: Johannes Berg Date: Tue Apr 21 00:30:49 2009 +0200 mac80211: fix IBSS code to not sleep while atomic With the RCU locking here we sleep while in an atomic context, since we can sleep just use mutex locking for the interface list instead of RCU. Sorry, seems I didn't get that in my UML test. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0cf4c01ebe2ccf4487fe9301bab905365dca06c3 Author: Mohamed Abbas Date: Mon Apr 20 14:37:04 2009 -0700 iwlwifi: allow config if device not ready Allow user to config the device all the time but only allow commiting these changes to card if the card is up and running. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 09f9bf79b7870ac017a94f7f9b603c2e28ac73f7 Author: Abhijeet Kolekar Date: Mon Apr 20 14:37:03 2009 -0700 iwlwifi: remove radio disable parameter. Patch removes the "manual radio disable" parameter as there is no usage scenario of disabling radio using this module parameter. User can use iwconfig's txpower to enable and disable radio. This module parameter also does not work as expected. During module load the status of radio is set, the radio is not actually disabled. Even so, the moment mac80211 requests the interface to be up the radio will be enabled again. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 447fee700f6cb7ada906c5db61c6c045741893e8 Author: Mohamed Abbas Date: Mon Apr 20 14:37:02 2009 -0700 iwlcore: Fix stay in table function. Function rs_stay_in_table was flushing the rate scale table way to early. time_after macro in expecting long value and was failing because we passing u32 value. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 279b05d4362472ae9269f982f00e644265bdbf94 Author: Wey-Yi Guy Date: Mon Apr 20 14:37:00 2009 -0700 iwlwifi: clean up unused NL80211_IFTYPE_MONITOR for Monitor mode This patch clean up the code for NL80211_IFTYPE_MONITOR mode, priv->iw_mode is set in add_interface, but add_interface is never called for monitor mode. The only way mac80211 informs us about monitor mode is through configuring filter; since iw_mode will never set to NL80211_IFTYPE_MONITOR, modify and remove all the code refer to NL80211_IFTYPE_MONITOR and replace with iwl_is_monitor_mode() function call. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 86ddbf62c2daefebba13e3c79f88cbdfde766176 Author: Abhijeet Kolekar Date: Mon Apr 20 14:36:59 2009 -0700 iwl3945: calculate debugfs isr statistics This patch calculates interrupt statistics for debugfs. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a75fbe8d68ceace836b27c216a5eda1c4687be4b Author: Abhijeet Kolekar Date: Mon Apr 20 14:36:58 2009 -0700 iwl3945: add debugfs to 3945 Patch adds debugfs to 3945. Also fix debugfs registration in iwlagn to return error code if it fails. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit b097ad29752f909ec1121ac3dc57d348f08dd8d7 Author: Johannes Berg Date: Mon Apr 20 14:36:57 2009 -0700 iwlwifi: support truly passive scanning If passive scanning is requested we should not ask the microcode to do active scanning after detecting traffic on a channel -- that should only be used when an active scan is requested but some channels are marked passive. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1ecf9fc1317f8df91eb1d74360f408558d657478 Author: Johannes Berg Date: Mon Apr 20 14:36:56 2009 -0700 iwlwifi: improve scan support This modifies iwlwifi to * no longer build its own probe request, but use mac80211's * therefore, support arbitrary scan IEs (up to the max len) * support multiple scan SSIDs * support passive scanning Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9b3bf06abad70db820c74c90118ea49358549d22 Author: Johannes Berg Date: Mon Apr 20 14:36:55 2009 -0700 iwlwifi: rename PROBE_OPTION_MAX_API1 to PROBE_OPTION_MAX_3945 This limit applies to current (APIv1 and APIv2) 3945 firmware only, not supported firmware of any of the other cards. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit cca84799dfe9f5201ae9c69eb8ed15fd26b72b37 Author: Christian Lamparter Date: Sun Apr 19 01:28:12 2009 +0200 ar9170: rework rxstream code With this patch ar9170 is capable of receiving aggregated 802.11n frames and sniffing on most networks without having a "debug message overhead". (Includes phy initialization requested by Johannes Berg -- JWL) Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit e7ec86f54e519e8e86f1cf328db13263f3ef8bd4 Author: Johannes Berg Date: Sat Apr 18 17:33:24 2009 +0200 mac80211: validate TIM IE length (redux) The TIM IE must not be shorter than 4 bytes, so verify that when parsing it and use the proper type. To ease that adjust struct ieee80211_tim_ie to have a virtual bitmap of size at least 1. Also check that the TIM IE is actually present before trying to parse it! Because other people may need the function, make it a static inline in ieee80211.h. (The original "mac80211: validate TIM IE length" was a minimal fix for 2.6.30. This purports to be the full, correct fix. -- JWL) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ba44cb7226afd4e19308c1d8a90e8b7c566c0d8b Author: Johannes Berg Date: Mon Apr 20 18:49:39 2009 +0200 cfg80211: mark all WEXT handlers _GPL The fact that these are exported is a technical detail of the conversion period -- we don't want anybody to start relying on these. Ultimately we want things to use cfg80211 only, and once everything that is in wext is converted to cfg80211 drivers will not need to touch wext _at all_. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9d308429a9fd0fa644f0b748f6241631f74a6cda Author: Johannes Berg Date: Mon Apr 20 18:43:46 2009 +0200 cfg80211: clear WEXT SSID when clearing IBSS When we leave an IBSS, we should clear the SSID and not just the BSSID, but since WEXT allows configuring while the interface is down we must not clear it when leaving due to taking the iface down, so some complications are needed. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b9a5f8cab751d362f7c2d94899ca788c22fcd1ef Author: Jouni Malinen Date: Mon Apr 20 18:39:05 2009 +0200 nl80211: Add set/get for frag/rts threshold and retry limits Add new nl80211 attributes that can be used with NL80211_CMD_SET_WIPHY and NL80211_CMD_GET_WIPHY to manage fragmentation/RTS threshold and retry limits. Since these values are stored in struct wiphy, remove the local copy from mac80211 where feasible (frag & rts threshold). The retry limits are currently needed in struct ieee80211_conf, but these could be eventually removed since the driver should have access to the values in struct wiphy. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9e52b0623c6eb49c3f23a326c1fb97bdecc49ba1 Author: Johannes Berg Date: Mon Apr 20 18:27:04 2009 +0200 ar9170: support HT receive and channel config This patch adds support for configuring HT40 channels and receiving HT40 to ar9170. Receiving aggregation doesn't seem to work right now, so it's not enabled. Same goes for TX aggregation, but that probably needs even more work. With this, I can receive roughly 33 Mbits/sec. The HT capabilities are a little odd, I tried following otus here -- in particular having SGI_40 but not SGI_20 is a little weird but afaict that's what otus does. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 314bd7503b1e96841931311f28a8925dab66ed83 Author: Johannes Berg Date: Mon Apr 20 15:17:01 2009 +0200 rndis_wlan: remove nickname support Supporting wireless extension nickname is pointless and no other modern driver supports this, so remove it. Signed-off-by: Johannes Berg Acked-by: Jussi Kivilinna Signed-off-by: John W. Linville commit d323655372590c533c275b1d798f9d1221efb5c6 Author: Johannes Berg Date: Mon Apr 20 14:31:42 2009 +0200 cfg80211: clean up includes Trying to separate header files into net/wireless.h and net/cfg80211.h has been a source of confusion. Remove net/wireless.h (because there also is the linux/wireless.h) and subsume everything into net/cfg80211.h -- except the definitions for regulatory structures which get moved to a new header net/regulatory.h. The "new" net/cfg80211.h is now divided into sections. There are no real changes in this patch but code shuffling and some very minor documentation fixes. I have also, to make things reflect reality, put in a copyright line for Luis to net/regulatory.h since that is probably exclusively written by him but was formerly in a file that only had my copyright line. Signed-off-by: Johannes Berg Cc: Luis R. Rodriguez Signed-off-by: John W. Linville commit af8cdcd828ad751fae8e6cbfe94eef9f2f23b14b Author: Johannes Berg Date: Sun Apr 19 21:25:43 2009 +0200 mac80211: convert to cfg80211 IBSS API This converts mac80211 to the new cfg80211 IBSS API, the wext handling functions are called where appropriate. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 04a773ade0680d862b479d7219973df60f7a3834 Author: Johannes Berg Date: Sun Apr 19 21:24:32 2009 +0200 cfg80211/nl80211: add IBSS API This adds IBSS API along with (preliminary) wext handlers. The wext handlers can only do IBSS so you need to call them from your own wext handlers if the mode is IBSS. The nl80211 API requires * an SSID * a channel (frequency) for the case that a new IBSS has to be created It optionally supports * a flag to fix the channel * a fixed BSSID The cfg80211 code also takes care to leave the IBSS before the netdev is set down. If wireless extensions are used, it also caches values when the interface is down and instructs the driver to join when the interface is set up. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 691597cb26f236ac7471f1adf925a134c86799d6 Author: Johannes Berg Date: Sun Apr 19 19:57:45 2009 +0200 cfg80211/mac80211: move wext SIWMLME into cfg80211 Since we have ->deauth and ->disassoc we can support the wext SIWMLME call directly without driver wext handlers. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d726405af6c8c81d2ee5e6a29301c68b9d4c574f Author: Johannes Berg Date: Sun Apr 19 16:23:20 2009 +0200 nl80211: send wiphy along with netdev When listing all wireless netdevs in the system this is useful to print which wiphy they belong to. Just add the attribute, any program that doesn't care will just ignore it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit fef99929cd6b409a67a35e41f7c177bade5bca34 Author: Christian Lamparter Date: Sat Apr 18 19:39:15 2009 +0200 mac80211: set CLEAR_PS for pspolled frames This patch sets IEEE80211_TX_CTL_CLEAR_PS_FILT for outgoing frames for a half-wake station. this is necessary if one wants to get ps-poll working properly with a p54 ap. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit d577e7cdb1be027bc51ee1030bc7fd647ea6d0da Author: Christian Lamparter Date: Sat Apr 18 18:30:13 2009 +0200 p54: fix ps-poll delivery in ap mode PS-Polled frames must be sent with OUT_NOCANCEL flag set, or the firmware will reject all of them, at the station is still blacklisted. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit a027087a6b4c7d985b872cac3e19ce023670792e Author: Larry Finger Date: Thu Apr 16 19:56:38 2009 -0500 rtl8187: Implement TX/RX blink for LED The following patch implements some control over the LED on RTL8187B and RTL8187L devices. Triggers are registered for TX and RX. Whenever the trigger event occurs, the LED is turned off for 1/20 second, then turned back on. Note: For those RTL8187X devices that are built into the computer and have a LED that is expected to be controlled with a radio switch, this patch will not operate that LED. That will take a separate patch to be prepared later. Signed-off-by: Larry Finger Signed-off-by: Herton Ronaldo Krzesinski Tested-by: Hin-Tak Leung Signed-off-by: John W. Linville commit 357303e2b61272b191f2e5d782d94fdd8f50fd71 Author: Jouni Malinen Date: Thu Apr 16 18:44:53 2009 +0300 mac80211: Allow scan to be requested in AP mode We can allow scan requests in AP mode as long as the interface has not yet been configured to send out Beacon frames (or if beaconing has been disabled prior to the scan request). This makes it easier to scan for neighboring BSSes during AP initialization and makes it possible to run a scan without setting the interface down, if needed. Without this change, the only available option would be to set the interface down, move into station mode, and set the interface up, prior to requesting the scan. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit bbbdff9e00449928f228867076a07bdfecd3dca8 Author: Johannes Berg Date: Thu Apr 16 13:27:42 2009 +0200 mac80211: enable PS by default Enable PS by default (depending on Kconfig) -- rely on drivers to control the level using pm_qos. Due to the previous patch we turn off PS when necessary due to latency requirements. This has a Kconfig symbol so people can, if they really want, configure the default in their kernels. We may want to keep it at "default y" only in wireless-testing for a while. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d91f36db51661018f6d54ff5966e283bcec4c545 Author: Johannes Berg Date: Thu Apr 16 13:17:26 2009 +0200 mac80211: implement beacon filtering in software Regardless of whether the hardware implements beacon filtering, there's no need to process all beacons in software all the time throughout the stack (mac80211 does a lot, then cfg80211, then in the future possibly userspace). This patch implements the "best possible" beacon filtering in mac80211. "Best possible" means that it can look for changes in all requested information elements, and distinguish vendor IEs by their OUI. In the future, we will add nl80211 API for userspace to request information elements and vendor IE OUIs to watch -- drivers can then implement the best they can do while software implements it fully. It is unclear whether or not this actually saves CPU time, but the data is all in the cache already so it should be fairly cheap. The additional _testing_, however, has great benefit; Without this, and on hardware that doesn't implement beacon filtering, wrong assumptions about, for example, scan result updates could quickly creep into code. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 10f644a47b76d3e61b98f2d02ce9690b94c51ee5 Author: Johannes Berg Date: Thu Apr 16 13:17:25 2009 +0200 mac80211: disable powersave if pm_qos asks for low latency When an application asks for a latency lower than the beacon interval there's nothing we can do -- we need to stay awake and not have the AP buffer frames for us. Add code to automatically calculate this constraint in mac80211 so drivers need not concern themselves with it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 965bedadc01d34027455d5d5b67063ef0209c955 Author: Johannes Berg Date: Thu Apr 16 13:17:24 2009 +0200 mac80211: improve powersave implementation When you have multiple virtual interfaces the current implementation requires setting them up properly from userspace, which is undesirable when we want to default to power save mode. Keep track of powersave requested from userspace per managed mode interface, and only enable powersave globally when exactly one managed mode interface is active and has powersave turned on. Second, only start the dynPS timer when PS is turned on, and properly turn it off when PS is turned off. Third, fix the scan_sdata abuse in the dynps code. Finally, also reorder the code and refactor the code that enables PS or the dynps timer instead of having it copied in two places. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit dc7d243d75b906cc964c12caa3b2eebe953a69be Author: Marek Vasut Date: Tue Mar 24 21:33:43 2009 +0100 Add support for CF8381 WiFi card. A detection function was added for identifying CF8381. Signed-off-by: Marek Vasut Acked-by: Dan Williams Signed-off-by: John W. Linville commit fade5db4f227bf59874efd6023f39d345e17e2a4 Author: Christian Lamparter Date: Fri Apr 17 15:14:22 2009 +0200 p54: deactivate broken powersave function (part 2) This patch deactivates powersave in station mode. It does not work correctly yet, so the code does more harm than good. (I split the original patch and sent part of it for 2.6.30, which didn't have the IEEE80211_HW_BEACON_FILTER flag. -- JWL) Reported-by: Johannes Berg Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 85efc86eb7c6cbb1c8ce8d99b10b948be033fbb9 Author: Luis R. Rodriguez Date: Mon Apr 13 21:41:46 2009 -0400 atheros: fix propagation of bad EEPROM on regulatory init When the EEPROM is not in good condition we cannot continue so we currently bail out but only ath5k is bailing out properly. Both ath9k and ar9170 were proceeding and if a user were to run into this they'd see an obscure panic. Lets propagate the error as intended and make sure we inform the user by lifting the error message from debug to a kernel error. Stable note: You can find a port of this page here: http://bombadil.infradead.org/~mcgrof/patches/ath9k/ath9k-fix-eeprom.patch.txt Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 26925042b6b105995ee54c6015e95f0caf9632d6 Author: Bob Copeland Date: Wed Apr 15 07:57:36 2009 -0400 ath5k: manipulate rxlink and descriptor address under rxbuf lock Grabbing an ath5k_buf then dropping the lock is racy because the referenced descriptor can be obtained in another thread and released before the buffer is handed to the hardware. Likewise, manipulating sc->rxlink without the lock can lead to having multiple self-linked hardware descriptors. Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit c57ca81576e7ca0369ea52c9ac5f35d0f6ca1270 Author: Bob Copeland Date: Wed Apr 15 07:57:35 2009 -0400 ath5k: use rx hw descriptor pointer for self-linked check This patch simplifies the code used to detect when the self-linked DMA buffer is still in use by hardware, by checking the hardware's rxdp register instead of looking at the software buffer list. Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 46802a4f07cd2367d584bb1a2e6998d22d4d4f3a Author: Bob Copeland Date: Wed Apr 15 07:57:34 2009 -0400 ath5k: use bool for modparams Current code uses int types, but both modparams are boolean values. Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 56d2ac763829d2443075e8266dd00166ee11c80d Author: Bob Copeland Date: Wed Apr 15 07:57:33 2009 -0400 ath5k: use tasklet_hi_schedule for beacon queue For embedded platforms, beacon transmission can be starved when flooded with data packets. Prioritize beacons by giving the beacon queue the first shot when the isr completes. Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 77ded01cc25744245c58a369d24e251833e995bd Author: Bob Copeland Date: Wed Apr 15 07:57:32 2009 -0400 ath5k: fix initvals errors This patch corrects a few errors in the initvals tables to match those in the HAL tables. Namely, remove a couple of repetitions, fix some turbo mode errors, and correct a register for the CCK rate power table. Changes-licensed-under: ISC Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 45f483c00299807a1635d6ee327957b796b60076 Author: Christian Lamparter Date: Tue Apr 14 22:19:29 2009 +0200 p54: remove module_ stubs Christoph Hellwig pointed out that these stubs are unnecessary. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 882b709230246de3359b04b195ad3e80b93b73ef Author: Vivek Natarajan Date: Tue Apr 14 16:21:01 2009 +0530 ath9k: Disable autosleep feature for AR9285 based chipsets. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit f2753ddbadb0873a98421415882318251bbd9eaa Author: Johannes Berg Date: Tue Apr 14 10:09:24 2009 +0200 mac80211: add hardware restart function Some hardware defects may require the hardware to be re-initialised completely from scratch. Drivers would need much information (for instance the current MAC address, crypto keys, beaconing information, etc.) stored duplicated from mac80211 to be able to do this, so let mac80211 help them. The new ieee80211_restart_hw() function requires the same code as resuming, so move that code into a new ieee80211_reconfig() function in util.c and leave only the suspend code in pm.c. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a1c555802a62c845520d2486d783c9bb1d5e68a9 Author: Christian Lamparter Date: Tue Apr 14 22:11:20 2009 +0200 ath: add module information This patch adds licensing, author information and a description to the module. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 06bfd0d3dbe965de4f60079955cca19d7e853c60 Author: Gábor Stefanik Date: Mon Apr 13 21:54:27 2009 +0200 rtl8187: Remove the "8187B chip detected" message when probing RTL8187B cards This message appears to be nothing more than a leftover of the experimental-8187B era. Also, we print the HW type in the hwaddr line, making this message reduntant. And it's definitely not important enough to be a KERN_WARNING. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 386aeacfa8912e1accffc47e30ffe0c0ecfe71e5 Author: Sujith Date: Mon Apr 13 21:57:01 2009 +0530 ath9k: Remove CHANNEL_CW_INT handling in ath9k_hw_calibrate It is already handled properly in ath9k_hw_getnf. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 04d19ddd254b404703151ab25aa5041e50ff40f7 Author: Sujith Date: Mon Apr 13 21:56:59 2009 +0530 ath9k: Fix bug in calibration initialization This patch fixes a bug in ath9k_hw_init_cal() where the wrong calibration was being done for non-AR9285 chipsets. Also add a few helpful comments. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit cbfe946860ffc718c5d99a6b740e33ac95fe8b8d Author: Sujith Date: Mon Apr 13 21:56:56 2009 +0530 ath9k: Use a consistent naming convention This patch replaces old 'hal_' prefixes with 'ath9k_'. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 379f04407c92d84f2506385b66fb9fc89ecd96c3 Author: Sujith Date: Mon Apr 13 21:56:48 2009 +0530 ath9k: Cleanup calibration interface This patch cleans up the functions dealing with calibration, using proper return values. ath9k_hw_per_calibration(), ath9k_hw_calibrate now return bool values instead of setting error values in the function arguments. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 415f738ecf41b427921b503ecfd427e26f89dc23 Author: Sujith Date: Mon Apr 13 21:56:46 2009 +0530 ath9k: Initialize ANI timers The various ANI timers have to be initialized properly when starting the calibration timer. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit a451aa66dcb14efcb7addf1d8edcac8df76a97b6 Author: Sujith Date: Mon Apr 13 21:56:43 2009 +0530 ath9k: Fix bug in determining calibration support ADC gain calibration has to be done for all non 2GHZ-HT20 channels. Regression from "ath9k: use ieee80211_conf on ath9k_hw_iscal_supported()" Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit db2f63f60a087ed29ae04310c1076c61f77a5d20 Author: Sujith Date: Mon Apr 13 21:56:41 2009 +0530 ath9k: Fix bug in checking HT flag The operating HT mode is stored in chanmode and not channelFlags. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit 822b0dfc135cf205379ea62aae7a5b393811b238 Author: Sujith Date: Mon Apr 13 21:56:38 2009 +0530 ath9k: Remove unused channel flags Signed-off-by: Sujith Signed-off-by: John W. Linville commit 9c07a7777f44c7e39accec5ad8c4293d6a9b2a47 Author: Sujith Date: Mon Apr 13 21:56:36 2009 +0530 ath9k: Fix bug in scan termination A full HW reset needs to be done on termination of a scan run. Not setting SC_OP_FULL_RESET resulted in doing a fast channel change. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit 675902ef822c114c0dac17ed10eed43eb8f5c9ec Author: Sujith Date: Mon Apr 13 21:56:34 2009 +0530 ath9k: Fix memleak on TX DMA failure The driver-specific region has to be freed in case of a DMA mapping failure. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit d2f5b3a6778ae86fd93cb01ccac16aa0b079e441 Author: Sujith Date: Mon Apr 13 21:56:25 2009 +0530 ath9k: Handle ASPM properly for RFKILL Radio enable/disable have to handle ASPM state properly. This patch fixes it. Signed-off-by: Sujith Signed-off-by: John W. Linville commit a89bff9a78b2bf51e21a961b473b5be94b22f12e Author: Steven Luo Date: Sun Apr 12 02:57:54 2009 -0700 ath9k: reset after PCI FATAL/PERR interrupts ath9k_hw_getisr() doesn't appear to set anything in the status mask for PCI FATAL or PERR interrupts (AR_INTR_SYNC_HOST1_FATAL/PERR), which the open-source HAL seems to do. This means that the card isn't reset after these interrupts. This patch seems to fix a problem where the wireless drops out with an "ath9k: received PCI FATAL interrupt" in dmesg after some time; the hardware is an AR5416 in an ASUS WL-500W running 2.6.28.7 (OpenWRT) and compat-wireless 2009-03-31. Signed-off-by: Steven Luo Signed-off-by: John W. Linville commit 2d1f96dd90a20c25243cc3b13e9f21d72f00aba0 Author: Larry Finger Date: Sat Apr 11 11:26:01 2009 -0500 b43legacy: Clean up beacon IRQ This patch ports commit c97a4ccc1fad35d3 "b43: Fix beacon BH update" to b43legacy. It fixes beacon updating in the bottomhalf. In case the device is busy, we will defer to later in the IRQ handler. Signed-off-by: Larry Finger Acked-by: Michael Buesch Tested-by: David Ellingsworth Signed-off-by: John W. Linville commit 7858e07b7ccf1d2fd5898a405c93d022d3f1f42d Author: Larry Finger Date: Sat Apr 11 11:25:24 2009 -0500 b43legacy: Fixes for beaconing This patch ports the beaconing fixes from commit a82d992261f "b43: Beaconing fixes" to b43legacy. Basically it prevents the card from triggering the beacon IRQ over and over again. Signed-off-by: Larry Finger Acked-by: Michael Buesch Tested-by: David Ellingsworth Signed-off-by: John W. Linville commit 7edfab7adef45a09b459cb7f5957f476108f5e77 Author: Johannes Berg Date: Sat Apr 11 13:32:46 2009 +0200 cfg80211: convert mutex assert to macro That will make the various cases where the WARN_ON can happen distinguishable. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4312a86b6840bca503603e918996b139fa3293ba Author: Christian Lamparter Date: Sat Apr 11 03:58:14 2009 +0200 p54: remove obsolet signal quality calculation The signal quality percentage is now calculated by mac80211 stack. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 6dfe9a884fec67070fc7502ad82f7eb328950b72 Author: Christian Lamparter Date: Sat Apr 11 03:58:01 2009 +0200 p54: utilize all available key slots for decryption offload This patch takes care of outstanding TODOs: /* TODO: some devices have 4 more free slots for rx keys */ Now the driver can utilize all available key slots instead of just 4. Obviously, this helps most in AP/IBSS(/MESH) mode, when we have to use more different keys. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 492301fb5d12e4a77a1010ad2b6f1ed306014123 Author: Larry Finger Date: Thu Apr 9 22:14:19 2009 -0500 rfkill: Fix broken rfkill LED in 2.6.30-rc1 The rfkill system fails to issue a LED trigger event when the rfkill state changes. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 137907287789607f2a2586ad625e7b8c646b3425 Author: Michael Buesch Date: Wed Apr 8 21:26:27 2009 +0200 b43: Remove unnecessary MMIO in interrupt hotpath This removes unnecessary MMIO accesses in the interrupt hotpath. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit a2caba6b5fc4e046edfefb1db82f52b939b526a5 Author: John W. Linville Date: Tue Apr 14 11:45:57 2009 -0400 libertas: fix warning about %zd: drivers/net/wireless/libertas/rx.c: In function ‘lbs_process_rxed_packet’: drivers/net/wireless/libertas/rx.c:184: warning: format ‘%zd’ expects type ‘signed size_t’, but argument 4 has type ‘__le32’ drivers/net/wireless/libertas/rx.c:184: warning: format ‘%zd’ expects type ‘signed size_t’, but argument 5 has type ‘unsigned int’ Signed-off-by: John W. Linville commit a83b9141b540f96dd59409c6487828e880113a29 Author: Wey-Yi Guy Date: Wed Apr 8 11:39:32 2009 -0700 iwlwifi: adding interrupt counter in debugfs for debugging This patch adds interrupt statistics report to debugfs, this can help to understand number of interrupts happened which including HW/SW error for easier and better debugging. in /sys/kernel/debug/ieee80211/phyN/iwlagn/data directory use "cat interrupt" to view the current interrupt counter use "echo 0 > interrupt" to clear interrupt counter Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1620108910b07bc41f4ad462ca56e899faf7e61a Author: Mohamed Abbas Date: Wed Apr 8 11:39:31 2009 -0700 iwlcore: fix channel display in debugfs Fix displaying of wrong channel information when user query channel through debugfs Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c2105fa7b68547a414095cfbf59bf513a9aae3ce Author: Daniel C Halperin Date: Wed Apr 8 11:39:30 2009 -0700 iwlwifi: check triple_stream_basic_rates in iwl_full_rxon_required For completeness, we should also make sure that the 3x3 MIMO rates are also checked when seeing if one rxon struct matches another. Signed-off-by: Daniel C Halperin Acked-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 3a6502927f763f05069d1b84af3a05b38eb1a818 Author: Mohamed Abbas Date: Wed Apr 8 11:39:29 2009 -0700 iwlagn: Sync rxon active with changes We need to sync rxon_active with changes after we commit rxon_assoc, without rxon_active will still have the old data that cause iwl_send_rxon_assoc to fail with no change in rxon command. Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ddfcf999274838a8dfb0ccf8e69fc1e50eea3341 Author: Daniel C Halperin Date: Wed Apr 8 11:39:28 2009 -0700 iwlwifi: do not set dual_stream_ant_msk for 3 streams This patch fixes a bug introduced by commit "iwlwifi: adding MIMO3 support in rate scaling". We should not set the dual_stream_ant_msk (for 2x2 MIMO) when using a 3x3 rate, this will cause a SYSASSERT in uCode. Note: there is no triple_stream_ant_msk, because all three antennas are used. Signed-off-by: Daniel C Halperin Acked-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 12b9681721adb34b7ec42aa973ab96692998153d Author: Wey-Yi Guy Date: Wed Apr 8 11:39:27 2009 -0700 iwlwifi: Display decoded rate/mcs information This patch adding MCS information in rate_scale_table, it help for debugging rate scaling algorithm, easy to understand what is the current rate scale table and matching modulation, plus the last mcs used for tx. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bd564261d7dd3660f7a5ba308a867c6bb23de6a2 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:52 2009 -0700 iwl3945: use iwl_mac_reset_tsf from iwlwifi 3945 can now use iwl_mac_reset_tsf from iwlwifi. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit aa89f31e708d469f5dd824c59c98e4856a2e3572 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:51 2009 -0700 iwl3945: use iwl_mac_get_tx_stats from iwlwifi 3945 can now use iwl_mac_get_tx_stats from iwlwifi. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5ee5811e24b20d49ea553fda568433effbab7a62 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:50 2009 -0700 iwl3945: use iwl_mac_config_interface from iwlwifi 3945 can now use iwl_mac_config_interface from iwlwifi. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 60690a6a38cc03142a0c5aaed64cf043e707457d Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:49 2009 -0700 iwlwifi: add config_ap lib op add config_ap lib op to iwlwifi and iwl3945 in preparation of future 3945 porting actions. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4808368dad3263ac46e71f037c0dcd2dcf082525 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:48 2009 -0700 iwl3945: use iwl_mac_config from iwlwifi 3945 can now use iwl_mac_config from iwlwifi Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d8052319f2a7d1ee86248df00193110ad1946a33 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:47 2009 -0700 iwl3945: use iwl_mac_remove_interface from iwlwifi 3945 can now use iwl_mac_remove_interface from iwlwifi Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit cbb6ab94b66cfb7136e640191a9628c5a71220a3 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:46 2009 -0700 iwl3945: use iwl_mac_add_interface from iwlwifi Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 727882d62477ed45d248e8cd6d53cf794537b073 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:45 2009 -0700 iwl3945: use iwl_set_mode in 3945 3945 can now use iwl_set_mode from iwlcore library. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 45823531662028a8cbd68906c20e887bb287c85e Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:44 2009 -0700 iwlwifi: add set_rxon_chain op add set_rxon_chain op to iwlwifi cfg ops in preparation of future 3945 porting work. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f5d3026683da45e00c49a24999ad0d256e4651d5 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:43 2009 -0700 iwl3945: use iwl_get_sta_id from iwlwifi iwl3945 can now use iwl_get_sta_id. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 06fd3d86a426848dbd8db27b7257a4eb4be8cfae Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:42 2009 -0700 iwl3945/iwlwifi: unify add_station function Patch unifies the add_station function for 3945 and iwlwifi drivers. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e11bc0286a4ff8f4e5cdefbcce0878d29c03c630 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:41 2009 -0700 iwlwifi: use station management ops Patch replaces station management functions with ops declared. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 40ace5b385ccf8a4d4d096b353b7f1baac1d014b Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:40 2009 -0700 iwl3945: replace station function with station ops Patch replaces station function used in driver by station management ops in 3945. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 79fa455a995057b6559fcd2a02e8b089b2e2e288 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:39 2009 -0700 iwlwifi: add station management ops This patch adds declarations for station management ops to iwlwifi drivers. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f45c271493c37d2d80177582191acc1a4e446297 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:38 2009 -0700 iwl3945: delay mode setting Delay mode setting till uCode is ready. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e0158e61108bdadd70865c2149dc829a5c84dd73 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:37 2009 -0700 iwlwifi: add commit_rxon lib Patch adds commit_rxon lib operation to iwlwifi and iwl3945 drivers. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9944b938f23fdd1ce2f5da190f771f176bb51eef Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:36 2009 -0700 iwl3945: use iwl_mac_beacon_update 3945 can use iwl_mac_beacon_update. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5bbe233b9bafabc08a5404d54b9fa086e8390fc7 Author: Abhijeet Kolekar Date: Wed Apr 8 11:26:35 2009 -0700 iwl3945: use iwl_bss_info_changed 3945 can use iwl_bss_info_changed. A new lib op is created for post_assoicate to distinguish between 3945 and iwlwifi's post_associate operations. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4499b23933b44bf9e56d1a29b51d9a62941f9fa4 Author: Johannes Berg Date: Wed Apr 8 02:55:34 2009 +0200 mac80211: re-upload keys only after telling driver about association In the normal WPA or RSN case keys are only configured after associating, so we should do that in that order when resuming as well. It shouldn't really matter since we do not send any data at either point, but iwlwifi prefers it this way and it does seem more natural. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e45d8e534b67580eedd9b4910ccc16d6dd3cceff Author: Bing Zhao Date: Mon Apr 6 15:50:56 2009 -0700 libertas: add support for Marvell SD8688 chip libertas: add support for Marvell SD8688 chip Use RxPD->pkt_ptr to locate eth803 header in the packet received since SD8688/v10 firmware allows a gap between RxPD and eth803 header. Set SDIO block size to 256 for CMD53. The maximum block size for SD8688 WLAN function is set to 512 in TPLFE_MAX_BLK_SIZE. But using 512 as block size results upto 2K bytes data (4 blocks) being transferred and causes buffer overflow in firmware. Both changes above are backward compatible with earlier firmware versions for SD8385/SD8686. The SDIO_DEVICE_IDs for SD8688 chip are added in include/linux/mmc/sdio_ids.h Signed-off-by: Kiran Divekar Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit 87cbfd06889256cac945b37c7f62f4ce7f44b34a Author: Max Filippov Date: Mon Apr 6 01:03:09 2009 +0400 p54spi: get rid of busy-wait loops p54spi_wakeup and p54spi_tx_frame used busy-waiting loop to poll for 'ready' bits in SPI_ADRS_HOST_INTERRUPTS register. With this change in place 'WR_READY timeout' messages do not show anymore. Signed-off-by: Max Filippov Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 6a362bb1c9f900f7e6daeee52ff2d538badae49b Author: Bob Copeland Date: Sun Apr 5 11:01:20 2009 -0400 ath5k: add support for Fukato Datacask Jupiter LEDs This adds support for the LEDs on the Jupiter netbook. Reported-by: Martin Bammer Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit b26ed97c75e1538176c09f29c423a3f8a75868a7 Author: Anna Neal Date: Thu Apr 2 14:44:09 2009 -0700 libertas: increase spi driver thread priority Currently, the libertas main thread contends with the spi driver thread in the TX path. To improve throughput, ensure that the driver thread has higher scheduling priority than the libertas main thread. Do this by making the libertas spi driver thread a low priority real time thread. We measured an average throughput improvement of 13%. Signed-off-by: Anna Neal Signed-off-by: Andrey Yurovsky Signed-off-by: John W. Linville commit 25e47c18ac4d8ad09c2ed4b99c1dbbcb7e3d2c51 Author: Johannes Berg Date: Thu Apr 2 20:14:06 2009 +0200 cfg80211: add cipher capabilities This adds the necessary code and fields to let drivers specify their cipher capabilities and exports them to userspace. Also update mac80211 to export the ciphers it has. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6bad8766620a3c8b64afa981502fdb543e3cfd6c Author: Luis R. Rodriguez Date: Thu Apr 2 14:08:09 2009 -0400 cfg80211: send regulatory beacon hint events to userspace This informs userspace when a change has occured on a world roaming wiphy's channel which has lifted some restrictions due to a regulatory beacon hint. Because this is now sent to userspace through the regulatory multicast group we remove the debug prints we used to use as they are no longer necessary. Acked-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5dab3b8a68cc97a7e6b9f79f5de05803c8e55a3c Author: Luis R. Rodriguez Date: Thu Apr 2 14:08:08 2009 -0400 cfg80211: add netlink channel put helper This adds a netlink channel put helper, nl80211_msg_put_channel(), which we will also make use of later for the beacon hints events. Acked-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a4ed90d60c39c5aef9a170d7693f61175acb22e0 Author: Luis R. Rodriguez Date: Thu Apr 2 14:08:07 2009 -0400 cfg80211: respect API on orig_flags on channel for beacon hint As part of our documented API we always respect the orig_flag settings on a channel. We forgot to follow this for the beacon hints. Acked-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3eb9296970e70902593b15ed3080e389954cf5f5 Author: Wey-Yi Guy Date: Wed Apr 1 14:33:25 2009 -0700 iwlwifi: add debug messages when start aggregation queue This patch adding few more debug messages if encounter error when driver try to start tx aggregation queue. Also change from IWL_ERR to IWL_DEBUG_HT is the HW legacy queue is empty when driver request to move to aggregation queue. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 584a0f00636d34f71a80f5b550a305f1a1620693 Author: Wey-Yi Guy Date: Wed Apr 1 14:33:24 2009 -0700 iwlwifi: adding MIMO3 support in rate scaling Separated the MIMO tpt matrix into MIMO2 and MIMO3, adding MIMO3 support in rate scaling algorithm. If the device support 3x3, then utilize all three antenna (A/B/C) for tx to improve throughput. Adding rs_switch_to_mimo3() function to allow switch to mimo3 modulation mode from other modes(legacy/siso/mimo2). Adding rs_move_mimo3_to_other() function to allow switch from mimo3 modulation mode to either siso or mimo2; also support toggle between SGI and NGI. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 11397a656f14466421bac503f0f3aaadf9486120 Author: Wey-Yi Guy Date: Wed Apr 1 14:33:23 2009 -0700 iwlwifi: adding triple stream rate support for MIMO3 Adding ht triple_stream_basic_rates for MIMO3 supports Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 64cdb0e3b8a5e5393cb64328ce0c844b7cf3a40e Author: Fabio Rossi Date: Wed Apr 1 20:37:50 2009 +0200 ath5k: fix interpolation with equal power levels When the EEPROM contains weird values for the power levels we have to fix the interpolation process. Signed-off-by: Fabio Rossi Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 910cfee363feda81cd5af4939ed9e0d27677b43f Author: Larry Finger Date: Wed Apr 1 10:42:36 2009 -0500 b43legacy: Do not select HW_RANDOM Auto-depend on HW_RANDOM, rather than "select"ing it. This way the user has the choice to enable or disable HWRNG support. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 66174bbea0b9c5bd4b7d060fed26bf5ec912c422 Author: Jouni Malinen Date: Wed Apr 1 17:23:54 2009 +0300 mac80211: Report rejected association to user space SME When using nl80211 association, we need to send association response with a failure code to user space SME instead of just internally trying to send out the same (re)association request again couple of times. This fixes problems in association process getting stuck on a failure when user space is not notified in any way that something actually failed. Signed-off-by: Jouni Malinen Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 5ef2d41afb7fce2315d12a8aaebe0c9f1b50755b Author: Johannes Berg Date: Tue Mar 31 12:12:07 2009 +0200 mac80211: include HT capabilities in probe request Include the HT capabilities in the probe request frame. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit de95a54b1aebe5592cae971ca5e5d9ec6a381a17 Author: Johannes Berg Date: Wed Apr 1 11:58:36 2009 +0200 mac80211: pass all probe request IEs to driver Instead of just passing the cfg80211-requested IEs, pass the locally generated ones as well. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 18a8365992a8041aa178ae9ad5f0d951d0457230 Author: Johannes Berg Date: Tue Mar 31 12:12:05 2009 +0200 cfg80211: introduce scan IE limit attribute This patch introduces a new attribute for a wiphy that tells userspace how long the information elements added to a probe request frame can be at most. It also updates the at76 to advertise that it cannot support that, and, for now until I can fix that, iwlwifi too. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 75c2148fa5330c6de741fc96e3308f57d846a6b4 Author: Luis R. Rodriguez Date: Mon Mar 30 22:30:35 2009 -0400 ath5k: sparse fix ath5k_led_on needs to be static drivers/net/wireless/ath/ath5k/led.c:81:6: warning: symbol 'ath5k_led_on' was not declared. Should it be static? Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6b2b2ffbef7750e51bfa74e92229ecee10b59307 Author: Luis R. Rodriguez Date: Mon Mar 30 22:30:34 2009 -0400 ath: space cleanup Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 203c4805e91786f9a010bc7945a0fde70c9da28e Author: Luis R. Rodriguez Date: Mon Mar 30 22:30:33 2009 -0400 atheros: put atheros wireless drivers into ath/ Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1878f77e13b9d720b78c4f818b94bfd4a7f596e5 Author: Christian Lamparter Date: Mon Mar 30 22:30:32 2009 -0400 Make ar9170 use common ath reg code Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit f769c36bd71ebe8d7a5f83764f0428d36ebced35 Author: Bob Copeland Date: Mon Mar 30 22:30:31 2009 -0400 ath5k: use regulatory infrastructure Make ath5k select the ath module and add in the hooks to make the eeprom regulatory hint and reg notifier take effect. Changes to attach.c Changes-licensed-under: ISC Changes to base.c Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit e3bb249be89dd387e78ca382d08fad31745edac9 Author: Bob Copeland Date: Mon Mar 30 22:30:30 2009 -0400 ath: move more setup code into ath_regd_init Setup the wiphy regulatory parameters when first initializing the Atheros regulatory module. We can remove five exported symbols this way and simplify the driver code for both ath5k and ath9k. Signed-off-by: Bob Copeland Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3a702e49c03ba959e3f5bb2b74ec9921a81c8c98 Author: Bob Copeland Date: Mon Mar 30 22:30:29 2009 -0400 atheros: introduce ath module containing common ath5k/ath9k/ar9170 code This change creates a new module, ath.ko, which includes code that can be shared between ath5k, ath9k and ar9170. For now, extract most of the ath9k regulatory code so it can also be used in ath5k. Signed-off-by: Bob Copeland Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c02cf3738c9dbc446c160b9d49a001eb2be316c8 Author: Bob Copeland Date: Mon Mar 30 22:30:28 2009 -0400 ath9k: pass regd structure directly to regulatory functions All regulatory information is encapsulated by the ath9k_regulatory struct, so we can now change all the callers to take that directly instead of struct ath_hw. This in turn will enable us to move the regulatory functions to common code also used by ath5k, since both can use this regulatory struct. Signed-off-by: Bob Copeland Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit fc2ada30cacc28c96eabc598d3ef294338d8dcf5 Author: Bob Copeland Date: Mon Mar 30 22:30:27 2009 -0400 ath9k: separate ath9k specific code from ath9k_regd_get_ctl() Until ath5k and ath9k share common channel structures, they will have to implement their own get_ctl() function. Split out the portion that only relies on the current band and reg domain so that it can be common code. Signed-off-by: Bob Copeland Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 55a3757a5703ebc58612ffbfbcb7f193dae17df7 Author: Reinette Chatre Date: Fri Mar 27 12:45:30 2009 -0700 iwlwifi: change check triggering device restart after rfkill change The STATUS_ALIVE value cannot be used because it is cleared when interface is brought down and will not be set if rfkill is enabled when interface is started again. The interface can thus not be brought up if rfkill was enabled before stopping the interface and disabled after starting the interface. Change the test to use priv->is_open instead, this will be set when interface is started whether rfkill is enabled or not. Thanks to Helmut Schaa for the suggested fix. Signed-off-by: Reinette Chatre Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 71a7b26d3e6404e43574f80236c00eaa39b2525e Author: Jussi Kivilinna Date: Thu Mar 26 23:40:31 2009 +0200 rndis_wlan: convert scan to cfg80211 Convert scan function to cfg80211. Unlike old scan code new code waits 1 sec before getting scan data from device and passing forward to cfg80211. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 4d2a369ec09167f423c0783b1cf85cee8102544f Author: Jussi Kivilinna Date: Thu Mar 26 23:40:23 2009 +0200 rndis_wlan: convert get range to cfg80211 Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 4bd7f03e915b6946307ce57f20718c6547734b5d Author: Jussi Kivilinna Date: Thu Mar 26 23:40:16 2009 +0200 rndis_wlan: change quality level scale Change quality level scale to match cfg80211 CFG80211_SIGNAL_TYPE_UNSPEC. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 06aa7afaaa21a4e7f1bcb196bd3f29193924a603 Author: Jussi Kivilinna Date: Thu Mar 26 23:40:09 2009 +0200 cfg80211: add cfg80211_inform_bss Added cfg80211_inform_bss() for full-mac devices to use. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 964c1d417e4738d359ba263921a7b9c18fa711c4 Author: John W. Linville Date: Thu Mar 26 23:40:01 2009 +0200 rndis_wlan: convert get/set mode to cfg80211 Signed-off-by: John W. Linville [edit: made rndis_change_virtual_intf static] Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 5c8fa4f7e7fcceabb3b37d7ec66d3e7115a4bba3 Author: John W. Linville Date: Thu Mar 26 23:39:53 2009 +0200 rndis_wlan: initiate cfg80211 conversion Signed-off-by: John W. Linville Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit f13027af5cd567757c18b85776232e31a2ba55d4 Author: Christian Lamparter Date: Wed Mar 25 03:12:49 2009 +0100 p54: add beacon filtering support This patch adds beacon filtering support to p54. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit dce072580e095d1fb7be59a1be30dc0e8307821b Author: Christian Lamparter Date: Wed Mar 25 03:12:18 2009 +0100 p54: more SoftLED updates This patch hopefully finishes the SoftLED code: - It adds two more LEDs (rx and radio). (the FW claims it can support up to 16 LEDs, but I doubt that any vendor put more than 4 on a board) - update the LEDs in a _delayed_ workqueue. No one reported any more crashes. (see: "PATCH] p54: fix race condition in memory management") So we can stop burning the mm code. Signed-off-by: Christian Lamparter Acked-by: Larry Finger Signed-off-by: John W. Linville commit cf3a9579f61c643c15c172da0baf5429578b0ba3 Author: Christian Lamparter Date: Wed Mar 25 03:11:58 2009 +0100 p54: clean up p54.h's struct p54_common This patch rearrange and regroups most elements in p54_common. Signed-off-by: Christian Lamparter Acked-by: Larry Finger Signed-off-by: John W. Linville commit 42639fcd443d97a9a471f4b8269620286dd7036b Author: Bob Copeland Date: Mon Mar 30 08:05:29 2009 -0400 ath5k: reduce exported channel list Claiming every available 5 ghz channel has a couple of negative side-effects: scanning takes a long time, and the channel list overflows the available buffer space for netlink commands, resulting in: $ iw phy phy0 info command failed: No buffer space available (-105) This patch adds a modparam so people who want to see all the channels can do so by passing all_channels=1. By default users will see a smaller list of channels. This also halves scan time, from 10 seconds down to less than 5 when using world regulatory. Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland Reported-by: Simon Farnsworth Tested-By: Simon Farnsworth Signed-off-by: John W. Linville commit d5522e039586fdf72493225a88b944f726b69671 Author: Johannes Berg Date: Mon Mar 30 13:23:35 2009 +0200 mac80211: move ieee80211_enable_ht function to mlme.c It really belongs into that file since it is only relevant for managed mode. Move 1:1, not even whitespace changes, but make it static and remove from header file. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f5c38ef06e005705ef87b7a77752c183bacb94cc Author: Sujith Date: Mon Mar 30 15:28:57 2009 +0530 ath9k: Fix bug in determining HT40 mode This patch fixes a bug in checking for HT40 mode. The STA's mode can be determined from the cached HT capabilities, use that and remove the redundant variable 'rc_phy_mode'. Signed-off-by: Sujith Signed-off-by: John W. Linville commit c6483cfe7147534719197c03a99848f49e004308 Author: Sujith Date: Mon Mar 30 15:28:56 2009 +0530 ath9k: Determine number of streams from HT capabilities The number of streams supported by a STA can be determined directly from the HT capabilities. Remove the redundant variable storing the stream cap. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 063d8be37d6f5818976a1185db4af55c5a5ae809 Author: Sujith Date: Mon Mar 30 15:28:49 2009 +0530 ath9k: Clean Interrupt handling routine This patch cleans up the ISR, removing a unnecessary do..while loop, and waking up the chip before getting the pending interrupts. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 87792efc7d20a21844eb7f4247e7b9027e783ec0 Author: Sujith Date: Mon Mar 30 15:28:48 2009 +0530 ath9k: Trivial fix to handle AMPDU params properly Handle aggregation params only when aggregation is supported. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 1ffb0610be915650cff44c69dc6728215eae08c0 Author: Sujith Date: Mon Mar 30 15:28:46 2009 +0530 ath9k: Initialize values when setting up the queue parameters Also fix a small typo. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 797fe5cbefdb91f796502677e3a6623262eb9fcd Author: Sujith Date: Mon Mar 30 15:28:45 2009 +0530 ath9k: Remove the useless do..while loops These are unnecessary constructs in a function. This patch removes these from both RX and TX init routines. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 4658b985170d9d0c88304d2d4459938b600f8c0b Author: Sujith Date: Mon Mar 30 15:28:43 2009 +0530 ath9k: Remove TIM from the interrupt mask We never handle TIM, TIM_TIMER is used instead. Remove this and the unnecessary swBeaconProcess variable. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 7dd58748592db1e5a77cfbddb8beffcfdb0242fe Author: Sujith Date: Mon Mar 30 15:28:42 2009 +0530 ath9k: Check for root debugfs file Creation of the root debugfs file could have failed for some reason, check properly before proceeding in this case. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 5cc93992cc4cf12ddfe63c8a5be2d509e6678e99 Author: Sujith Date: Mon Mar 30 15:28:41 2009 +0530 ath9k: Remove unused structures struct aggr_rifs_param and ath_tx_stat are not used anywhere. Signed-off-by: Sujith Signed-off-by: John W. Linville commit ae459af12816b507aed3fcb2b9fc933c212ea12e Author: Sujith Date: Mon Mar 30 15:28:40 2009 +0530 ath9k: Remove a couple of unused variables in descriptor handling Signed-off-by: Sujith Signed-off-by: John W. Linville commit a119cc492fc720de7fcaf7c1b9394d6c025d276d Author: Sujith Date: Mon Mar 30 15:28:38 2009 +0530 ath9k: Cleanup buffer status handling Using a u32 to store a single flag is overkill. Use a bool to store whether the buffer is stale or not. Also, use u8 instead of u32 to store the buffer type. Signed-off-by: Sujith Signed-off-by: John W. Linville commit a22be22ab8fe571cce88d0d30b49f297a563c4a7 Author: Sujith Date: Mon Mar 30 15:28:36 2009 +0530 ath9k: Avoid unneeded casts Change the void pointer to struct sk_buff and access bf_mpdu directly, removing all casts in the process. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 0ef1f168b6bc82b0b157c568e764b75961867970 Author: Sujith Date: Mon Mar 30 15:28:35 2009 +0530 ath9k: Remove redundant variable for Interrupt Mitigation The state is already stored in ath9k_ops_config, so remove the duplicate variable in ath_hw. Signed-off-by: Sujith Signed-off-by: John W. Linville commit eef7a57430c83b0419ba943bb1650ed5c349d454 Author: Sujith Date: Mon Mar 30 15:28:28 2009 +0530 ath9k: Change return value of ath9k_hw_fill_cap_info This routine always return true, checking for false in the return value is invalid. Fix this. Signed-off-by: Sujith Signed-off-by: John W. Linville commit d8baa9392666d1c50ef42e9f6fbbb0cf536327b9 Author: Sujith Date: Mon Mar 30 15:28:25 2009 +0530 ath9k: Cleanup debug messages Clean debug messages to use appropriate levels, remove useless messages, and trim the number of debug levels. Signed-off-by: John W. Linville commit 6ed6a05e5c8061cdcd69a418c90c5f11979ce650 Author: Sujith Date: Mon Mar 30 15:28:24 2009 +0530 ath9k: Remove redundant chainmask check We get the valid chainmasks on HW attach, checking it again during reset is redundant. This patch removes the check. Signed-off-by: Sujith Signed-off-by: John W. Linville commit bdbdf46daa6dccb472f56559854477faddc44de9 Author: Sujith Date: Mon Mar 30 15:28:22 2009 +0530 ath9k: Remove a few unused flags This patch removes unused HW capability flags and HW operation variables, and a chainmask flag that we don't use anywhere. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 8782b41d13c8e5f9a201477d3c15edf9fe7c372c Author: Vivek Natarajan Date: Mon Mar 30 14:17:00 2009 +0530 ath9k: No need to abort Rx path when autosleep is enabled. For chipsets supporting autosleep feature, there is no need to abort Rx engine since they are capable of automatically going back to sleep after receiving a packet. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit 616de35da94df8748771a014ef898360d5f4d0c8 Author: Michael Buesch Date: Sun Mar 29 13:19:31 2009 +0200 b43: Do not "select" HW_RANDOM Auto-depend on HW_RANDOM, rather than "select"ing it. This way the user has the choice to enable or disable HWRNG support. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit a57e2e84b65d1b89c4b1effeceb27b181226b950 Author: Ivo van Doorn Date: Sat Mar 28 20:51:41 2009 +0100 rt2x00: Fix Sparse warning rt2x00link_reset_qual() is not declared in a header, and is only internally used within rt2x00link.c. It should be declared as static. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 440ddadaee6d0d5e8a7ee53ac913f78a8e5570a1 Author: Ivo van Doorn Date: Sat Mar 28 20:51:24 2009 +0100 rt2x00: Move Move pci_dev specific access to rt2x00pci pci_dev->irq and pci_name(pci_dev) access should be limited to rt2x00pci only. This is more generic and allows a rt2x00 pci driver to be controlled as PCI device but also as platform driver (needed for rt2800pci SoC support). Signed-off-by: Felix Fietkau Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 32c1628f153a5468cf48be5e5c04cd599ae9e01d Author: Christian Lamparter Date: Sat Mar 28 01:46:14 2009 +0100 ar9170: fix hang on stop This patch fixes a locking problem which freezes the network core. The deadlock goes as follows: - ar9170_op_stop - is called 1. change the state to IDLE 2. > take the MUTEX < 3. cancel_SYNC all pending work, which means "block until a work_struct's callback has terminated" => if filter_config_work was queued it tries to get the MUTEX, before checking the device state... Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 807e37394b5a1dc23a2908b59f34edbbae67e9ea Author: Pavel Roskin Date: Fri Mar 27 17:47:27 2009 -0400 ath5k: fix scanning in AR2424 AR5K_PHY_PLL_40MHZ_5413 should not be ORed with AR5K_PHY_MODE_RAD_RF5112 for 5 GHz channels. The incorrect PLL value breaks scanning in the countries where 5 GHz channels are allowed. Signed-off-by: Pavel Roskin Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit a3b8b0569fbef725597f05278ec58083321f6e9d Author: Jouni Malinen Date: Fri Mar 27 21:59:49 2009 +0200 nl80211: Add Michael MIC failure event Define a new nl80211 event, NL80211_CMD_MICHAEL_MIC_FAILURE, to be used to notify user space about locally detected Michael MIC failures. This matches with the MLME-MICHAELMICFAILURE.indication() primitive. Since we do not actually have TSC in the skb anymore when mac80211_ev_michael_mic_failure() is called, that function is changed to take in the TSC as an optional parameter instead of as a requirement to include the TSC after the hdr field (which we did not really follow). For now, TSC is not included in the events from mac80211, but it could be added at some point. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 53b46b8444f600cc1744521ea096ea0c5d494dd0 Author: Jouni Malinen Date: Fri Mar 27 20:53:56 2009 +0200 nl80211: Generate deauth/disassoc event for locally generated frames Previously, nl80211 mlme events were generated only for received deauthentication and disassociation frames. We need to do the same for locally generated ones in order to let applications know that we disconnected (e.g., when AP does not reply to a probe). Rename the nl80211 and cfg80211 functions (s/rx_//) to make it clearer that they are used for both received and locally generated frames. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 1778092e1739155acec35a3bccee2fb8a1ae4e91 Author: Jouni Malinen Date: Fri Mar 27 20:52:47 2009 +0200 nl80211: Require auth type for NL80211_CMD_AUTHENTICATE NL80211_ATTR_AUTH_TYPE is a required parameter for NL80211_CMD_AUTHENTICATE. We are currently (by chance) defaulting to open system authentication if the attribute is not specified. It is better to just reject the invalid command. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit c0ed418977edf60f1df9933e1ccd48920a28eb66 Author: Huang Weiyi Date: Fri Mar 27 22:21:36 2009 +0800 nl80211: remove duplicated #include Remove duplicated #include in net/wireless/core.h. Signed-off-by: Huang Weiyi Signed-off-by: John W. Linville commit 07f62d01c1f476a3b328a44faafdfd103a4dedc3 Author: Huang Weiyi Date: Fri Mar 27 22:20:27 2009 +0800 cfg80211: remove duplicated #include Remove duplicated #include in include/net/cfg80211.h. Signed-off-by: Huang Weiyi Signed-off-by: John W. Linville commit fd7fbb17bec7b055fafec4d0ae3bfb4ed60cad8b Author: Johannes Berg Date: Fri Mar 27 14:16:44 2009 +0100 rfkill-input: remove unused code There's a lot of rfkill-input code that cannot ever be compiled and is useless until somebody needs and tests it -- therefore remove it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 621cac85297de5ba655e3430b007dd2e0da91da6 Author: Johannes Berg Date: Fri Mar 27 14:14:31 2009 +0100 rfkill: remove user_claim stuff Almost all drivers do not support user_claim, so remove it completely and always report -EOPNOTSUPP to userspace. Since userspace cannot really drive rfkill _anyway_ (due to the odd restrictions imposed by the documentation) having this code is just pointless. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c1c6b14b22af0f85d05a70405dc3fba5de840c7b Author: Johannes Berg Date: Mon Mar 30 11:32:46 2009 +0200 rfkill: remove deprecated state constants I only did superficial review, but these constants are stupid to have and without proper warnings nobody will review the code anyway, no amount of shouting will help. Also fix wimax to use correct states. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f4a11bb0c2d5968ea35f95bdbabdd453862f202a Author: Johannes Berg Date: Fri Mar 27 12:40:28 2009 +0100 nl80211: validate some input better This patch changes nl80211 to: * validate that any IE input is a valid IE (stream) * move some validation code before locking * require that a reason code is given for both deauth/disassoc Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b0741a1a2b00d9b4d88ba60016c88e42f176e4d6 Author: Vasanthakumar Thiagarajan Date: Fri Mar 27 13:08:45 2009 +0530 mac80211: Don't access managed mode bits in non-managed mode This fixes a stupid bug introduced in 25f85c31d4f.. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 9f201a87831af9458df1eda65941c955f2da87ed Author: Max Filippov Date: Fri Mar 27 07:50:53 2009 +0300 p54spi: compensate firmware alignment bug in p54spi_rx Firmware may insert up to 4 padding bytes after the lmac header, but it does not amend the size of SPI data transfer. Such packets has correct data size in header, thus referencing past the end of allocated skb. Put extra 4 bytes to the end of the received skb to compensate for this case. Signed-off-by: Max Filippov Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 488829f1b141858944a24fd793220fa1d52cd9a6 Author: Abhijeet Kolekar Date: Thu Mar 26 10:14:10 2009 -0700 iwl3945: use iwl_mac_conf_tx 3945 now uses iwl_mac_conf_tx. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6da3a13e4fcab0ff58592087d28bd283caf23d88 Author: Wey-Yi Guy Date: Thu Mar 26 10:14:08 2009 -0700 iwlwifi: merge and better support of suspend/resume for iwlagn and iwl3945 With mac80211's help to call stop() and start() in mac80211 suspend/resume function, both iwlagn and iwl3945 no longer calling stop() and start(); remove un-necessary STATUS_IN_SUSPEND bit from both header files and functions, Move apm_ops.stop() function into pci_suspend() to ensure DMA is stopped before go into suspend mode. iwl3945 has the similar suspend/resume function as iwlagn, so move both functions to iwlcore to be shared by both drivers. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4f5cab969bdbec1ab0c5b690282372b4978123ac Author: Max Filippov Date: Thu Mar 26 06:38:25 2009 +0300 p54spi: fix p54spi_tx_frame DMA transfer initiation and skb cleanup p54spi_tx_frame wasn't waiting for HOST_ALLOWED in SPI_ADRS_DMA_WRITE_CTRL. This resulted in frequent 'WR_READY timeout' on beacon resubmission. Also don't free skb on error path, as it gets freed on p54spi_wq_tx. Signed-off-by: Max Filippov Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 684d6b360222f31b6b9be9a63aa5c6ed5674c890 Author: Bing Zhao Date: Wed Mar 25 09:51:16 2009 -0700 libertas: support mesh for various firmware versions CMD_MESH_CONFIG command ID and a couple of structure members in TxPD, RxPD have been changed in firmware version 10.x.y.z and newer. Signed-off-by: Kiran Divekar Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit 5e3af1d2d3e6c0011b4c22514d39c73dcbc6674f Author: Max Filippov Date: Wed Mar 25 13:45:01 2009 +0100 p54spi: fix p54spi_upload_firmware Instead of firmware itself p54_upload_firmware was sending to the device content of struct firmware and the following random garbage. Notice '&' before priv->firmware->data at p54spi_spi_write. But simple removing of '&' sign triggered BUG_ON at dma_cache_maint. Thus kmemdup - kfree workaround. Signed-off-by: Max Filippov Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit f74d0f5cacb7023422098dd5c98e3ce06787ba56 Author: Max Filippov Date: Wed Mar 25 08:30:15 2009 +0300 p54spi: mask value read from SPI_ADRS_DMA_WRITE_CTRL in p54spi_wait_bit Mask value read from SPI_ADRS_DMA_WRITE_CTRL in p54spi_wait_bit. Without this, 'fw_upload not allowed to DMA write' is observed at both N800 and N810. Signed-off-by: Max Filippov Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit e5e9743bb7429f53c83ad69b432f7b661e74c3f0 Merge: a0f82f6 775d8d9 Author: David S. Miller Date: Tue Apr 21 01:32:26 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/core/dev.c commit d130fe5c95739472b61b30f3f2b401ee43d5e3ea Author: Alexander Beregalov Date: Wed Apr 15 07:58:27 2009 +0000 ipw2x00: remove old compat_net_dev_ops code Since both ipw2100 and ipw2200 are already converted to new net_device_ops this code is useless. Signed-off-by: Alexander Beregalov Signed-off-by: David S. Miller commit 0ee904c35cc3fdd26a9c76077d9692d458309186 Author: Alexander Beregalov Date: Sat Apr 11 14:50:23 2009 +0000 drivers/net: replace BUG() with BUG_ON() if possible Signed-off-by: Alexander Beregalov Signed-off-by: David S. Miller commit 54cb2284dce50672c40248b8e95940318ec2ca41 Author: Wei Yongjun Date: Wed Apr 8 22:16:38 2009 +0000 at76c50x-usb: remove pointless conditional before kfree_skb() Remove pointless conditional before kfree_skb(). Signed-off-by: Wei Yongjun Signed-off-by: David S. Miller