--- /dev/null
+From: Johannes Berg <johannes@sipsolutions.net>
+Date: Thu, 17 Sep 2009 15:35:54 +0000 (-0700)
+Subject: cfg80211: wext: don't display BSSID unless associated
+X-Git-Tag: master-2009-09-28~10
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Flinville%2Fwireless-2.6.git;a=commitdiff_plain;h=33de4f9d787e01646f715ac10c2699fb98fd479e;hp=d1f8297a96b0d70f17704296a6666468f2087ce6
+
+cfg80211: wext: don't display BSSID unless associated
+
+Currently, cfg80211's SIOCGIWAP implementation returns
+the BSSID that the user set, even if the connection has
+since been dropped due to other changes. It only should
+return the current BSSID when actually connected.
+
+Also do a small code cleanup.
+
+Reported-by: Thomas H. Guenther <thomas.h.guenther@intel.com>
+Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
+Tested-by: Thomas H. Guenther <thomas.h.guenther@intel.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+
+diff --git a/net/wireless/wext-sme.c b/net/wireless/wext-sme.c
+index bf72527..53c6ba9 100644
+--- a/net/wireless/wext-sme.c
++++ b/net/wireless/wext-sme.c
+@@ -229,8 +229,7 @@ int cfg80211_mgd_wext_giwessid(struct net_device *dev,
+ data->flags = 1;
+ data->length = wdev->wext.connect.ssid_len;
+ memcpy(ssid, wdev->wext.connect.ssid, data->length);
+- } else
+- data->flags = 0;
++ }
+ wdev_unlock(wdev);
+
+ return 0;
+@@ -306,8 +305,6 @@ int cfg80211_mgd_wext_giwap(struct net_device *dev,
+ wdev_lock(wdev);
+ if (wdev->current_bss)
+ memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);
+- else if (wdev->wext.connect.bssid)
+- memcpy(ap_addr->sa_data, wdev->wext.connect.bssid, ETH_ALEN);
+ else
+ memset(ap_addr->sa_data, 0, ETH_ALEN);
+ wdev_unlock(wdev);
--- /dev/null
+From: Johannes Berg <johannes@sipsolutions.net>
+Date: Thu, 24 Sep 2009 07:00:57 +0000 (+0200)
+Subject: cfg80211: don't set privacy w/o key
+X-Git-Tag: master-2009-09-28~9
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Flinville%2Fwireless-2.6.git;a=commitdiff_plain;h=4be3bd8ccc195297870b9ffca4ef18bcbc2f1822;hp=33de4f9d787e01646f715ac10c2699fb98fd479e
+
+cfg80211: don't set privacy w/o key
+
+When wpa_supplicant is used to connect to open networks,
+it causes the wdev->wext.keys to point to key memory, but
+that key memory is all empty. Only use privacy when there
+is a default key to be used.
+
+Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
+Tested-by: Luis R. Rodriguez <lrodriguez@atheros.com>
+Tested-by: Kalle Valo <kalle.valo@iki.fi>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+
+diff --git a/net/wireless/wext-sme.c b/net/wireless/wext-sme.c
+index 53c6ba9..5615a88 100644
+--- a/net/wireless/wext-sme.c
++++ b/net/wireless/wext-sme.c
+@@ -30,7 +30,8 @@ int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev,
+ if (wdev->wext.keys) {
+ wdev->wext.keys->def = wdev->wext.default_key;
+ wdev->wext.keys->defmgmt = wdev->wext.default_mgmt_key;
+- wdev->wext.connect.privacy = true;
++ if (wdev->wext.default_key != -1)
++ wdev->wext.connect.privacy = true;
+ }
+
+ if (!wdev->wext.connect.ssid_len)
--- /dev/null
+From: Reinette Chatre <reinette.chatre@intel.com>
+Date: Fri, 25 Sep 2009 21:24:22 +0000 (-0700)
+Subject: iwlwifi: fix memory leak in command queue handling
+X-Git-Tag: master-2009-09-28~7
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Flinville%2Fwireless-2.6.git;a=commitdiff_plain;h=2814298639619b0aa994fe1aee55438f1e26a2a8
+
+iwlwifi: fix memory leak in command queue handling
+
+Also free the array of command pointers and meta data of each
+command buffer when command queue is freed.
+
+Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+
+diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
+index a7422e5..c189075 100644
+--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
++++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
+@@ -197,6 +197,12 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
+ pci_free_consistent(dev, priv->hw_params.tfd_size *
+ txq->q.n_bd, txq->tfds, txq->q.dma_addr);
+
++ /* deallocate arrays */
++ kfree(txq->cmd);
++ kfree(txq->meta);
++ txq->cmd = NULL;
++ txq->meta = NULL;
++
+ /* 0-fill queue descriptor structure */
+ memset(txq, 0, sizeof(*txq));
+ }
--- /dev/null
+rom: Johannes Berg <johannes@sipsolutions.net>
+Date: Sat, 26 Sep 2009 12:42:53 +0000 (+0200)
+Subject: cfg80211: always get BSS
+X-Git-Tag: master-2009-09-28~5
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Flinville%2Fwireless-2.6.git;a=commitdiff_plain;h=8bb894859e9495a94f94af3ee4711c89cdf24a95
+
+cfg80211: always get BSS
+
+Multiple problems were reported due to interaction
+between wpa_supplicant and the wext compat code in
+cfg80211, which appear to be due to it not getting
+any bss pointer here when wpa_supplicant sets all
+parameters -- do that now. We should still get the
+bss after doing an extra scan, but that appears to
+increase the time we need for connecting enough to
+sometimes cause timeouts.
+
+Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
+Tested-by: Hin-Tak Leung <hintak.leung@gmail.com>,
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+
+diff --git a/net/wireless/sme.c b/net/wireless/sme.c
+index 7fae7ee..93c3ed3 100644
+--- a/net/wireless/sme.c
++++ b/net/wireless/sme.c
+@@ -762,9 +762,8 @@ int __cfg80211_connect(struct cfg80211_registered_device *rdev,
+ wdev->conn->params.ssid = wdev->ssid;
+ wdev->conn->params.ssid_len = connect->ssid_len;
+
+- /* don't care about result -- but fill bssid & channel */
+- if (!wdev->conn->params.bssid || !wdev->conn->params.channel)
+- bss = cfg80211_get_conn_bss(wdev);
++ /* see if we have the bss already */
++ bss = cfg80211_get_conn_bss(wdev);
+
+ wdev->sme_state = CFG80211_SME_CONNECTING;
+ wdev->connect_keys = connkeys;
ifeq ($(BR2_XENCLIENT_KERNEL_VERSION_2_6_27),y)
ifeq ($(BR2_XENCLIENT_KERNEL_CONF_DOM0),y)
-WIFI_BACKPORTS_VERSION:=2009-09-24
+WIFI_BACKPORTS_VERSION:=2009-09-28
WIFI_BACKPORTS_SITE:=http://www.orbit-lab.org/kernel/compat-wireless-2.6/2009/09
WIFI_BACKPORTS_SOURCE:=compat-wireless-$(WIFI_BACKPORTS_VERSION).tar.bz2
WIFI_BACKPORTS_DIR=$(BUILD_DIR)/compat-wireless-$(WIFI_BACKPORTS_VERSION)