- 21 May, 2008 1 commit
-
-
Helmut Schaa authored
Fix a possible NULL pointer dereference in ieee80211_compatible_rates introduced in the patch "mac80211: fix association with some APs". If no bss is available just use all supported rates in the association request. Signed-off-by:
Helmut Schaa <hschaa@suse.de> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 16 May, 2008 1 commit
-
-
Abhijeet Kolekar authored
This patch fixes the association problem with 11n hidden ssid ap. Patch fixes the problem of associating with hidden ssid when all three parameters ap,essid and channel are given to iwconfig. This patch removes the condition of checking three parameters and always checks for bss in bss list while associating. Signed-off-by:
Abhijeet Kolekar <abhijeet.kolekar@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 13 May, 2008 1 commit
-
-
Helmut Schaa authored
Some APs refuse association if the supported rates contained in the association request do not match its own supported rates. This patch introduces a new function which builds the intersection between the AP's supported rates and the client's supported rates to work around such problems. The same approach is already used in ipw2200 for example. Signed-off-by:
Helmut Schaa <hschaa@suse.de> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 24 Apr, 2008 2 commits
-
-
Pavel Emelyanov authored
The put routine first decrements the users counter and then (if it is zero) locks the sta_bss_lock and removes one from the list and the hash. Thus, any of ieee80211_sta_config_auth, ieee80211_rx_bss_get or ieee80211_rx_mesh_bss_get can race with it by finding a bss that is about to get kfree-ed. Using atomic_dec_and_lock in ieee80211_rx_bss_put takes care of this race. Signed-off-by:
Pavel Emelyanov <xemul@openvz.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Abhijeet Kolekar authored
There are two structures named wmm_info and wmm_param, they are used while parsing the beacon frame. (Check the function ieee802_11_parse_elems). Certain APs like D-link does not set the fifth bit in WMM IE. While sending the association request to n-only ap it checks for wmm_ie. If it is set then only ieee80211_ht_cap is sent during association request. So n-only association fails. And this patch fixes this problem by copying the wmm_info to wmm_ie, which enables the "wmm" flag in iee80211_send_assoc. Signed-off-by:
Abhijeet Kolekar <abhijeet.kolekar@intel.com> Acked-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 16 Apr, 2008 3 commits
-
-
Johannes Berg authored
This patch reworks the scanning code (ieee80211_rx_bss_info) to take more parameters from beacons and keep a BSS info structure alive when only beacons for it are received. This fixes a problem with iwlwifi drivers (where we don't understand the root cause of the problem yet) and another driver for some broken hardware (which cannot send probe requests unless associated, so can't always actively scan.) Signed-off-by:
Bill Moss <bmoss@clemson.edu> [jmberg: reformatted comments, make probe_resp a bool] Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Reinette Chatre authored
There is no need to send BSS changes to driver from beacons processed during scanning. We are more interested in beacons from an AP with which we are associated - these will still be used to send updates to driver as the beacons are received without scanning. This change·removes the requirement that bss_info_changed needs to be atomic. The beacons received during scanning are processed from a tasklet, but if we do not call bss_info_changed for these beacons there is no need for it to be atomic. This function (bss_info_changed) is called either from workqueue or ioctl in all other instances. Signed-off-by:
Reinette Chatre <reinette.chatre@intel.com> Acked-by:
Tomas Winkler <tomas.winkler@intel.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
John W. Linville authored
This one got renamed, complicating the merge a bit...this should restore it to its intended state. Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 08 Apr, 2008 9 commits
-
-
Johannes Berg authored
This patch renames all mac80211 files (except ieee80211_i.h) to get rid of the useless ieee80211_ prefix. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
Up to now, key manipulation is supposed to run under RTNL to avoid concurrent manipulations and also allow the set_key() hardware callback to sleep. This is not feasible because STA structs are rcu-protected and thus a lot of operations there cannot take the RTNL. Also, key references are rcu-protected so we cannot do things atomically. This patch changes key locking completely: * key operations are now atomic * hardware crypto offload is enabled and disabled from a workqueue, due to that key freeing is also delayed * debugfs code is also run from a workqueue * keys reference STAs (and vice versa!) so during STA unlink the STAs key reference is removed but not the keys STA reference, to avoid races key todo work is run before STA destruction. * fewer STA operations now need the RTNL which was required due to key operations This fixes the locking problems lockdep pointed out and also makes things more light-weight because the rtnl isn't required as much. Note that the key todo lock/key mutex are global locks, this is not required, of course, they could be per-hardware instead. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Ron Rindjunsky authored
This patch contains next issues: 1 - prevents "stop BA session" multiple warnings 2 - adds debug print to stop Rx BA session flow 3 - adds EOL in one debug print Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
Reinette Chatre <reinette.chatre@intel.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Mohamed Abbas authored
Add new API to MAC80211 to allow low level driver to notify MAC with driver status. Signed-off-by:
Mohamed Abbas <mabbas@linux.intel.com> Signed-off-by:
Reinette Chatre <reinette.chatre@intel.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Reinette Chatre authored
When drivers receive change notification they may do work that will enable the changes to take effect. For example, if new association the device needs to be programmed with this information. Give the driver chance to make the changes before notifying the upper layer - thus preventing race condition where upper layer attempts to utilize state that may not be configured yet. Signed-off-by:
Reinette Chatre <reinette.chatre@intel.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
Really doesn't need to be defined four times. Also, while at it, remove a useless macro (IEEE80211_ALIGN32_PAD) and a function prototype for a function we don't actually have (ieee80211_set_compression.) Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Tomas Winkler authored
This patch adds assocation capability, timestamp (tsf) and beacon interval to bss_conf. This is required for successful assocation of iwlwifi drivers Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
Gregory Greenman <gregory.greenman@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Tomas Winkler authored
This patch eliminates the use of conf_ht, replacing it with bss_info_changed. Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
John W. Linville authored
This reverts commit 6c4711b4 . That patch breaks mesh config comparison between beacons/probe reponses, so every beacon from a mesh network would be added as a new bss. Since the comparison has to be performed for every received beacon I believe it is best to save the mesh config in a format easy to compare, rather than do a bunch of unaligned accesses to compare field by field. Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 01 Apr, 2008 9 commits
-
-
Luis Carlos Cobo authored
This allows cleaner code when accesing bss->mesh_config components. Signed-off-by:
Luis Carlos Cobo <luisca@cozybit.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Luis Carlos Cobo authored
Signed-off-by:
Luis Carlos Cobo <luisca@cozybit.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Luis Carlos Cobo authored
Signed-off-by:
Luis Carlos Cobo <luisca@cozybit.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
A variable 'i' is being shadowed by another one, but the second one can just be removed. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Cc: Vladimir Koutny <vlado@work.ksp.sk> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
When the IBSS code tries to flush the STA list, it does so in an atomic context. Flushing isn't safe there, however, and requires the RTNL, so we need to defer it to a workqueue. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
Calling sta_info_destroy() doesn't require RCU-synchronisation before-hand because it does that internally. However, it does require rtnl-locking so insert that where necessary. Also clean up the code doing it internally to be a bit clearer and not synchronize twice if keys are configured. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
When STA structure insertion fails, it has been allocated but isn't really alive yet, it isn't reachable by any other code and also can't yet have much configured. This patch changes the code so that when the insertion fails, the resulting STA pointer is no longer valid because it is freed. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
When joining a new IBSS, all old stations are flushed, but currently all stations belonging to all virtual interfaces are flushed, which is wrong. This patch fixes it. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Vladimir Koutny authored
ERP IE bit for preamble mode is 0 for short and 1 for long, not the other way around. This fixes the value reported to the driver via bss_conf->use_short_preamble field. Signed-off-by:
Vladimir Koutny <vlado@ksp.sk> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 27 Mar, 2008 1 commit
-
-
Ron Rindjunsky authored
This patch alters the A-MPDU MLME in sta_info to use dynamic allocation, thus drastically improving memory usage - from a constant ~2 Kbyte in the previous (static) allocation to a lower limit of ~200 Byte and an upper limit of ~2 Kbyte. Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 25 Mar, 2008 6 commits
-
-
Vladimir Koutny authored
Default WMM params have to be set according to beacon/probe response information prior to authentication (or IBSS start/join); beacon queue is configured only in IBSS. This does not affect the use of 'real' WMM params as reported by AP. Signed-off-by:
Vladimir Koutny <vlado@ksp.sk> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Mohamed Abbas authored
Postpone calling ieee80211_hw_config if hardware scanning is active. This is similar to solution for software scanning where channel setting is delayed until scan complete. Signed-off-by:
Mohamed Abbas <mohamed.abbas@intel.com> Signed-off-by:
Reinette Chatre <reinette.chatre@intel.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Ron Rindjunsky authored
This patch adds a clean tear down for all block ack sessions if interface goes down or if a deauthentication is done. Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Ron Rindjunsky authored
This patch also fixes the Rx timer's comments Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Ron Rindjunsky authored
This patch fixes a wrong debug print when receiving delba Signed-off-by:
Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
When you have an AP on channel 13, it will currently often enough be listed in scan results even when the regulatory domain restricts to channels 1-11. This is due to channel overlap. To avoid getting very strange failures, don't show such APs in the scan results. The failure mode will now go from "I can see the AP but not associate" to "I can't see the AP although I know it's there" which is easier to debug. This problem was first really noticed by Jes Sorensen. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Cc: Jes Sorensen <jes@trained-monkey.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 07 Mar, 2008 1 commit
-
-
Johannes Berg authored
Reinette pointed out that with the sta_info RCU-ification the behaviour here changed and the conf_tx callback is now invoked under RCU read lock. That is not necessary so this patch restores the original behaviour Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Tested-by:
Reinette Chatre <reinette.chatre@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- 06 Mar, 2008 6 commits
-
-
Johannes Berg authored
The mac80211 MLME requires restarting timers after a scan completes but this wasn't done when hardware scan offload was added, so add it now. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Tested-by:
Bill Moss <bmoss@clemson.edu> Cc: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Luis Carlos Cobo authored
Signed-off-by:
Luis Carlos Cobo <luisca@cozybit.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Luis Carlos Cobo authored
Pointed out by Johannes Berg. Signed-off-by:
Luis Carlos Cobo <luisca@cozybit.com> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
sta_info_add() has two functions: allocating a station info structure and inserting it into the hash table/list. Splitting these two functions allows allocating with GFP_KERNEL in many places instead of GFP_ATOMIC which is now required by the RCU protection. Additionally, in many places RCU protection is now no longer needed at all because between sta_info_alloc() and sta_info_insert() the caller owns the structure. This fixes a few race conditions with setting initial flags and similar, but not all (see comments in ieee80211_sta.c and cfg.c). More documentation on the existing races will be in a follow-up patch. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
This makes access to the STA hash table/list use RCU to protect against freeing of items. However, it's not a true RCU, the copy step is missing: whenever somebody changes a STA item it is simply updated. This is an existing race condition that is now somewhat understandable. This patch also fixes the race key freeing vs. STA destruction by making sure that sta_info_destroy() is always called under RTNL and frees the key. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Johannes Berg authored
Various cleanups, reducing the #ifdef mess and other things. Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-