]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.33 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 24 May 2010 22:01:33 +0000 (15:01 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 24 May 2010 22:01:33 +0000 (15:01 -0700)
queue-2.6.33/cachefiles-fix-error-handling-in-cachefiles_determine_cache_security.patch [new file with mode: 0644]
queue-2.6.33/crypto-authenc-add-einprogress-check.patch [new file with mode: 0644]
queue-2.6.33/iwlwifi-check-for-aggregation-frame-and-queue.patch [new file with mode: 0644]
queue-2.6.33/iwlwifi-clear-all-the-stop_queue-flag-after-load-firmware.patch [new file with mode: 0644]
queue-2.6.33/mmap_min_addr-check-cap_sys_rawio-only-for-write.patch [new file with mode: 0644]
queue-2.6.33/nilfs2-fix-sync-silent-failure.patch [new file with mode: 0644]
queue-2.6.33/revert-ath9k-fix-lockdep-warning-when-unloading-module-on-stable-kernels.patch [new file with mode: 0644]
queue-2.6.33/series

diff --git a/queue-2.6.33/cachefiles-fix-error-handling-in-cachefiles_determine_cache_security.patch b/queue-2.6.33/cachefiles-fix-error-handling-in-cachefiles_determine_cache_security.patch
new file mode 100644 (file)
index 0000000..b04863c
--- /dev/null
@@ -0,0 +1,45 @@
+From 7ac512aa8237c43331ffaf77a4fd8b8d684819ba Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 12 May 2010 15:34:03 +0100
+Subject: CacheFiles: Fix error handling in cachefiles_determine_cache_security()
+
+From: David Howells <dhowells@redhat.com>
+
+commit 7ac512aa8237c43331ffaf77a4fd8b8d684819ba upstream.
+
+cachefiles_determine_cache_security() is expected to return with a
+security override in place.  However, if set_create_files_as() fails, we
+fail to do this.  In this case, we should just reinstate the security
+override that was set by the caller.
+
+Furthermore, if set_create_files_as() fails, we should dispose of the
+new credentials we were in the process of creating.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/cachefiles/security.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/fs/cachefiles/security.c
++++ b/fs/cachefiles/security.c
+@@ -77,6 +77,8 @@ static int cachefiles_check_cache_dir(st
+ /*
+  * check the security details of the on-disk cache
+  * - must be called with security override in force
++ * - must return with a security override in force - even in the case of an
++ *   error
+  */
+ int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
+                                       struct dentry *root,
+@@ -99,6 +101,8 @@ int cachefiles_determine_cache_security(
+        * which create files */
+       ret = set_create_files_as(new, root->d_inode);
+       if (ret < 0) {
++              abort_creds(new);
++              cachefiles_begin_secure(cache, _saved_cred);
+               _leave(" = %d [cfa]", ret);
+               return ret;
+       }
diff --git a/queue-2.6.33/crypto-authenc-add-einprogress-check.patch b/queue-2.6.33/crypto-authenc-add-einprogress-check.patch
new file mode 100644 (file)
index 0000000..536655a
--- /dev/null
@@ -0,0 +1,88 @@
+From 180ce7e81030e1ef763d58f97f9ab840ff57d848 Mon Sep 17 00:00:00 2001
+From: Herbert Xu <herbert@gondor.apana.org.au>
+Date: Mon, 26 Apr 2010 09:14:05 +0800
+Subject: crypto: authenc - Add EINPROGRESS check
+
+From: Herbert Xu <herbert@gondor.apana.org.au>
+
+commit 180ce7e81030e1ef763d58f97f9ab840ff57d848 upstream.
+
+When Steffen originally wrote the authenc async hash patch, he
+correctly had EINPROGRESS checks in place so that we did not invoke
+the original completion handler with it.
+
+Unfortuantely I told him to remove it before the patch was applied.
+
+As only MAY_BACKLOG request completion handlers are required to
+handle EINPROGRESS completions, those checks are really needed.
+
+This patch restores them.
+
+Reported-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ crypto/authenc.c |   16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+--- a/crypto/authenc.c
++++ b/crypto/authenc.c
+@@ -46,6 +46,12 @@ struct authenc_request_ctx {
+       char tail[];
+ };
++static void authenc_request_complete(struct aead_request *req, int err)
++{
++      if (err != -EINPROGRESS)
++              aead_request_complete(req, err);
++}
++
+ static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
+                                unsigned int keylen)
+ {
+@@ -142,7 +148,7 @@ static void authenc_geniv_ahash_update_d
+                                crypto_aead_authsize(authenc), 1);
+ out:
+-      aead_request_complete(req, err);
++      authenc_request_complete(req, err);
+ }
+ static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err)
+@@ -208,7 +214,7 @@ static void authenc_verify_ahash_update_
+       err = crypto_ablkcipher_decrypt(abreq);
+ out:
+-      aead_request_complete(req, err);
++      authenc_request_complete(req, err);
+ }
+ static void authenc_verify_ahash_done(struct crypto_async_request *areq,
+@@ -245,7 +251,7 @@ static void authenc_verify_ahash_done(st
+       err = crypto_ablkcipher_decrypt(abreq);
+ out:
+-      aead_request_complete(req, err);
++      authenc_request_complete(req, err);
+ }
+ static u8 *crypto_authenc_ahash_fb(struct aead_request *req, unsigned int flags)
+@@ -379,7 +385,7 @@ static void crypto_authenc_encrypt_done(
+               err = crypto_authenc_genicv(areq, iv, 0);
+       }
+-      aead_request_complete(areq, err);
++      authenc_request_complete(areq, err);
+ }
+ static int crypto_authenc_encrypt(struct aead_request *req)
+@@ -418,7 +424,7 @@ static void crypto_authenc_givencrypt_do
+               err = crypto_authenc_genicv(areq, greq->giv, 0);
+       }
+-      aead_request_complete(areq, err);
++      authenc_request_complete(areq, err);
+ }
+ static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req)
diff --git a/queue-2.6.33/iwlwifi-check-for-aggregation-frame-and-queue.patch b/queue-2.6.33/iwlwifi-check-for-aggregation-frame-and-queue.patch
new file mode 100644 (file)
index 0000000..32a5b85
--- /dev/null
@@ -0,0 +1,96 @@
+From 45d427001b5eec03cecaacddb53c73af46bb263e Mon Sep 17 00:00:00 2001
+From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+Date: Wed, 3 Feb 2010 12:24:44 -0800
+Subject: iwlwifi: check for aggregation frame and queue
+
+From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+
+commit 45d427001b5eec03cecaacddb53c73af46bb263e upstream.
+
+Error checking for aggregation frames should go into aggregation queue,
+if aggregation queue not available, use legacy queue instead.
+Also make sure the aggregation queue is available to activate,
+if driver and mac80211 is out-of-sync, try to disable the queue and
+sync-up with mac80211.
+
+Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/iwlwifi/iwl-agn-rs.c |   15 ++++++++++++++-
+ drivers/net/wireless/iwlwifi/iwl-tx.c     |   18 ++++++++++++------
+ 2 files changed, 26 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
++++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+@@ -298,10 +298,23 @@ static void rs_tl_turn_on_agg_for_tid(st
+                                     struct iwl_lq_sta *lq_data, u8 tid,
+                                     struct ieee80211_sta *sta)
+ {
++      int ret;
++
+       if (rs_tl_get_load(lq_data, tid) > IWL_AGG_LOAD_THRESHOLD) {
+               IWL_DEBUG_HT(priv, "Starting Tx agg: STA: %pM tid: %d\n",
+                               sta->addr, tid);
+-              ieee80211_start_tx_ba_session(sta, tid);
++              ret = ieee80211_start_tx_ba_session(sta, tid);
++              if (ret == -EAGAIN) {
++                      /*
++                       * driver and mac80211 is out of sync
++                       * this might be cause by reloading firmware
++                       * stop the tx ba session here
++                       */
++                      IWL_DEBUG_HT(priv, "Fail start Tx agg on tid: %d\n",
++                              tid);
++                      ret = ieee80211_stop_tx_ba_session(sta, tid,
++                                              WLAN_BACK_INITIATOR);
++              }
+       }
+ }
+--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
++++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
+@@ -821,8 +821,10 @@ int iwl_tx_skb(struct iwl_priv *priv, st
+               hdr->seq_ctrl |= cpu_to_le16(seq_number);
+               seq_number += 0x10;
+               /* aggregation is on for this <sta,tid> */
+-              if (info->flags & IEEE80211_TX_CTL_AMPDU)
++              if (info->flags & IEEE80211_TX_CTL_AMPDU &&
++                  priv->stations[sta_id].tid[tid].agg.state == IWL_AGG_ON) {
+                       txq_id = priv->stations[sta_id].tid[tid].agg.txq_id;
++              }
+       }
+       txq = &priv->txq[txq_id];
+@@ -1347,7 +1349,7 @@ int iwl_tx_agg_stop(struct iwl_priv *pri
+ {
+       int tx_fifo_id, txq_id, sta_id, ssn = -1;
+       struct iwl_tid_data *tid_data;
+-      int ret, write_ptr, read_ptr;
++      int write_ptr, read_ptr;
+       unsigned long flags;
+       if (!ra) {
+@@ -1399,13 +1401,17 @@ int iwl_tx_agg_stop(struct iwl_priv *pri
+       priv->stations[sta_id].tid[tid].agg.state = IWL_AGG_OFF;
+       spin_lock_irqsave(&priv->lock, flags);
+-      ret = priv->cfg->ops->lib->txq_agg_disable(priv, txq_id, ssn,
++      /*
++       * the only reason this call can fail is queue number out of range,
++       * which can happen if uCode is reloaded and all the station
++       * information are lost. if it is outside the range, there is no need
++       * to deactivate the uCode queue, just return "success" to allow
++       *  mac80211 to clean up it own data.
++       */
++      priv->cfg->ops->lib->txq_agg_disable(priv, txq_id, ssn,
+                                                  tx_fifo_id);
+       spin_unlock_irqrestore(&priv->lock, flags);
+-      if (ret)
+-              return ret;
+-
+       ieee80211_stop_tx_ba_cb_irqsafe(priv->vif, ra, tid);
+       return 0;
diff --git a/queue-2.6.33/iwlwifi-clear-all-the-stop_queue-flag-after-load-firmware.patch b/queue-2.6.33/iwlwifi-clear-all-the-stop_queue-flag-after-load-firmware.patch
new file mode 100644 (file)
index 0000000..16aa620
--- /dev/null
@@ -0,0 +1,52 @@
+From a9e10fb9b1c6ad16e73cf2656951fce3a817611e Mon Sep 17 00:00:00 2001
+From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+Date: Tue, 9 Feb 2010 08:14:11 -0800
+Subject: iwlwifi: clear all the stop_queue flag after load firmware
+
+From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+
+commit a9e10fb9b1c6ad16e73cf2656951fce3a817611e upstream.
+
+All the queues are awake and ready to use after loading firmware,
+for firmware reload case, if any queues was stopped before
+reload, mac80211 will wake those queues after restart hardware, so make
+sure all the flag used to keep track of the queue status are
+reset correctly.
+
+Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
+Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/iwlwifi/iwl-4965.c |    5 +++++
+ drivers/net/wireless/iwlwifi/iwl-5000.c |    5 +++++
+ 2 files changed, 10 insertions(+)
+
+--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
++++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
+@@ -581,6 +581,11 @@ static int iwl4965_alive_notify(struct i
+       iwl4965_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
++      /* make sure all queue are not stopped */
++      memset(&priv->queue_stopped[0], 0, sizeof(priv->queue_stopped));
++      for (i = 0; i < 4; i++)
++              atomic_set(&priv->queue_stop_count[i], 0);
++
+       /* reset to 0 to enable all the queue first */
+       priv->txq_ctx_active_msk = 0;
+       /* Map each Tx/cmd queue to its corresponding fifo */
+--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
++++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
+@@ -657,6 +657,11 @@ int iwl5000_alive_notify(struct iwl_priv
+       iwl5000_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
++      /* make sure all queue are not stopped */
++      memset(&priv->queue_stopped[0], 0, sizeof(priv->queue_stopped));
++      for (i = 0; i < 4; i++)
++              atomic_set(&priv->queue_stop_count[i], 0);
++
+       /* reset to 0 to enable all the queue first */
+       priv->txq_ctx_active_msk = 0;
+       /* map qos queues to fifos one-to-one */
diff --git a/queue-2.6.33/mmap_min_addr-check-cap_sys_rawio-only-for-write.patch b/queue-2.6.33/mmap_min_addr-check-cap_sys_rawio-only-for-write.patch
new file mode 100644 (file)
index 0000000..2a75395
--- /dev/null
@@ -0,0 +1,47 @@
+From 4ae69e6b718589abe97c9625ccbb1e0bc95a8c0e Mon Sep 17 00:00:00 2001
+From: Kees Cook <kees.cook@canonical.com>
+Date: Thu, 22 Apr 2010 12:19:17 -0700
+Subject: mmap_min_addr check CAP_SYS_RAWIO only for write
+
+From: Kees Cook <kees.cook@canonical.com>
+
+commit 4ae69e6b718589abe97c9625ccbb1e0bc95a8c0e upstream.
+
+Redirecting directly to lsm, here's the patch discussed on lkml:
+http://lkml.org/lkml/2010/4/22/219
+
+The mmap_min_addr value is useful information for an admin to see without
+being root ("is my system vulnerable to kernel NULL pointer attacks?") and
+its setting is trivially easy for an attacker to determine by calling
+mmap() in PAGE_SIZE increments starting at 0, so trying to keep it private
+has no value.
+
+Only require CAP_SYS_RAWIO if changing the value, not reading it.
+
+Comment from Serge :
+
+  Me, I like to write my passwords with light blue pen on dark blue
+  paper, pasted on my window - if you're going to get my password, you're
+  gonna get a headache.
+
+Signed-off-by: Kees Cook <kees.cook@canonical.com>
+Acked-by: Serge Hallyn <serue@us.ibm.com>
+Signed-off-by: James Morris <jmorris@namei.org>
+(cherry picked from commit 822cceec7248013821d655545ea45d1c6a9d15b3)
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ security/min_addr.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/security/min_addr.c
++++ b/security/min_addr.c
+@@ -33,7 +33,7 @@ int mmap_min_addr_handler(struct ctl_tab
+ {
+       int ret;
+-      if (!capable(CAP_SYS_RAWIO))
++      if (write && !capable(CAP_SYS_RAWIO))
+               return -EPERM;
+       ret = proc_doulongvec_minmax(table, write, buffer, lenp, ppos);
diff --git a/queue-2.6.33/nilfs2-fix-sync-silent-failure.patch b/queue-2.6.33/nilfs2-fix-sync-silent-failure.patch
new file mode 100644 (file)
index 0000000..a4e212a
--- /dev/null
@@ -0,0 +1,51 @@
+From 973bec34bfc1bc2465646181653d67f767d418c8 Mon Sep 17 00:00:00 2001
+From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
+Date: Mon, 3 May 2010 21:00:48 +0900
+Subject: nilfs2: fix sync silent failure
+
+From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
+
+commit 973bec34bfc1bc2465646181653d67f767d418c8 upstream.
+
+As of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.
+And nilfs does not set s_bdi anywhere.  I noticed this problem by the
+warning introduced by the recent commit 5129a469 ("Catch filesystem
+lacking s_bdi").
+
+ WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()
+ Hardware name: PowerEdge 2850
+ Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas
+ Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38
+ Call Trace:
+  [<c1028422>] warn_slowpath_common+0x60/0x90
+  [<c102845f>] warn_slowpath_null+0xd/0x10
+  [<c1095936>] vfs_kern_mount+0xc5/0x14e
+  [<c1095a03>] do_kern_mount+0x32/0xbd
+  [<c10a811e>] do_mount+0x671/0x6d0
+  [<c1073794>] ? __get_free_pages+0x1f/0x21
+  [<c10a684f>] ? copy_mount_options+0x2b/0xe2
+  [<c107b634>] ? strndup_user+0x48/0x67
+  [<c10a81de>] sys_mount+0x61/0x8f
+  [<c100280c>] sysenter_do_call+0x12/0x32
+
+This ensures to set s_bdi for nilfs and fixes the sync silent failure.
+
+Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
+Acked-by: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/nilfs2/super.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/fs/nilfs2/super.c
++++ b/fs/nilfs2/super.c
+@@ -746,6 +746,7 @@ nilfs_fill_super(struct super_block *sb,
+       sb->s_export_op = &nilfs_export_ops;
+       sb->s_root = NULL;
+       sb->s_time_gran = 1;
++      sb->s_bdi = nilfs->ns_bdi;
+       err = load_nilfs(nilfs, sbi);
+       if (err)
diff --git a/queue-2.6.33/revert-ath9k-fix-lockdep-warning-when-unloading-module-on-stable-kernels.patch b/queue-2.6.33/revert-ath9k-fix-lockdep-warning-when-unloading-module-on-stable-kernels.patch
new file mode 100644 (file)
index 0000000..0f10711
--- /dev/null
@@ -0,0 +1,145 @@
+From lrodriguez@atheros.com  Mon May 24 14:51:15 2010
+From: "Luis R. Rodriguez" <lrodriguez@atheros.com>
+Date: Wed, 19 May 2010 17:33:49 -0400
+Subject: Revert "ath9k: fix lockdep warning when unloading module" on stable kernels
+To: greg@kroah.com, stable@kernel.org
+Cc: "Luis R. Rodriguez" <lrodriguez@atheros.com>, Ming Lei <tom.leiming@gmail.com>, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, "John W. Linville" <linville@tuxdriver.com>, Johannes Berg <johannes@sipsolutions.net>
+Message-ID: <1274304829-14367-1-git-send-email-lrodriguez@atheros.com>
+
+
+Johannes' patch 34e8950 titled:
+
+       mac80211: allow station add/remove to sleep
+
+changed the way mac80211 adds and removes peers. The new
+sta_add() / sta_remove() callbacks allowed the driver callbacks
+to sleep. Johannes also ported ath9k to use sta_add() / sta_remove()
+via the patch 4ca7786 titled:
+
+       ath9k: convert to new station add/remove callbacks
+
+but this patch forgot to address a change in locking issue which
+Ming Lei eventually found on his 2.6.33-wl #12 build. The 2.6.33-wl
+build includes code for the 802.11 subsystem for 2.6.34 though so did
+already have the above two patches (ath9k_sta_remove() on his trace),
+the 2.6.33 kernel did not however have these two patches. Ming eventually
+cured his lockdep warnign via the patch a9f042c titled:
+
+       ath9k: fix lockdep warning when unloading module
+
+This went in to 2.6.34 and although it was not marked as a stable
+fix it did get trickled down and applied on both 2.6.33 and 2.6.32.
+
+In review, the culprits:
+
+       mac80211: allow station add/remove to sleep
+git describe --contains 34e895075e21be3e21e71d6317440d1ee7969ad0
+v2.6.34-rc1~233^2~49^2~107
+
+       ath9k: convert to new station add/remove callbacks
+git describe --contains 4ca778605cfec53d8a689f0b57babb93b030c784
+v2.6.34-rc1~233^2~49^2~10
+
+       ath9k: fix lockdep warning when unloading module
+
+This last one trickled down to 2.6.33 (OK), 2.6.33 (invalid) and 2.6.32 (invalid).
+
+git describe --contains a9f042cbe5284f34ccff15f3084477e11b39b17b
+v2.6.34-rc2~48^2~77^2~7
+git describe --contains 0524bcfa80f1fffb4e1fe18a0a28900869a58a7c
+v2.6.33.2~125
+git describe --contains 0dcc9985f34aef3c60bffab3dfc7f7ba3748f35a
+v2.6.32.11~79
+
+The patch titled "ath9k: fix lockdep warning when unloading module"
+should be reverted on both 2.6.33 and 2.6.32 as it is invalid and
+actually ended up causing the following warning:
+
+ADDRCONF(NETDEV_CHANGE): wlan31: link becomes ready
+phy0: WMM queue=2 aci=0 acm=0 aifs=3 cWmin=15 cWmax=1023 txop=0
+phy0: WMM queue=3 aci=1 acm=0 aifs=7 cWmin=15 cWmax=1023 txop=0
+phy0: WMM queue=1 aci=2 acm=0 aifs=2 cWmin=7 cWmax=15 txop=94
+phy0: WMM queue=0 aci=3 acm=0 aifs=2 cWmin=3 cWmax=7 txop=47
+phy0: device now idle
+------------[ cut here ]------------
+WARNING: at kernel/softirq.c:143 local_bh_enable_ip+0x7b/0xa0()
+Hardware name: 7660A14
+Modules linked in: ath9k(-) mac80211 ath cfg80211 <whatever-bleh-etc>
+Pid: 2003, comm: rmmod Not tainted 2.6.32.11 #6
+Call Trace:
+ [<ffffffff8105d178>] warn_slowpath_common+0x78/0xb0
+ [<ffffffff8105d1bf>] warn_slowpath_null+0xf/0x20
+ [<ffffffff81063f8b>] local_bh_enable_ip+0x7b/0xa0
+ [<ffffffff815121e4>] _spin_unlock_bh+0x14/0x20
+ [<ffffffffa034aea5>] ath_tx_node_cleanup+0x185/0x1b0 [ath9k]
+ [<ffffffffa0345597>] ath9k_sta_notify+0x57/0xb0 [ath9k]
+ [<ffffffffa02ac51a>] __sta_info_unlink+0x15a/0x260 [mac80211]
+ [<ffffffffa02ac658>] sta_info_unlink+0x38/0x60 [mac80211]
+ [<ffffffffa02b3fbe>] ieee80211_set_disassoc+0x1ae/0x210 [mac80211]
+ [<ffffffffa02b42d9>] ieee80211_mgd_deauth+0x109/0x110 [mac80211]
+ [<ffffffffa02ba409>] ieee80211_deauth+0x19/0x20 [mac80211]
+ [<ffffffffa028160e>] __cfg80211_mlme_deauth+0xee/0x130 [cfg80211]
+ [<ffffffff81118540>] ? init_object+0x50/0x90
+ [<ffffffffa0285429>] __cfg80211_disconnect+0x159/0x1d0 [cfg80211]
+ [<ffffffffa027125f>] cfg80211_netdev_notifier_call+0x10f/0x450 [cfg80211]
+ [<ffffffff81514ca7>] notifier_call_chain+0x47/0x90
+ [<ffffffff8107f501>] raw_notifier_call_chain+0x11/0x20
+ [<ffffffff81442d66>] call_netdevice_notifiers+0x16/0x20
+ [<ffffffff8144352d>] dev_close+0x4d/0xa0
+ [<ffffffff814439a8>] rollback_registered+0x48/0x120
+ [<ffffffff81443a9d>] unregister_netdevice+0x1d/0x70
+ [<ffffffffa02b6cc4>] ieee80211_remove_interfaces+0x84/0xc0 [mac80211]
+ [<ffffffffa02aa072>] ieee80211_unregister_hw+0x42/0xf0 [mac80211]
+ [<ffffffffa0347bde>] ath_detach+0x8e/0x180 [ath9k]
+ [<ffffffffa0347ce1>] ath_cleanup+0x11/0x50 [ath9k]
+ [<ffffffffa0351a2c>] ath_pci_remove+0x1c/0x20 [ath9k]
+ [<ffffffff8129d712>] pci_device_remove+0x32/0x60
+ [<ffffffff81332373>] __device_release_driver+0x53/0xb0
+ [<ffffffff81332498>] driver_detach+0xc8/0xd0
+ [<ffffffff81331405>] bus_remove_driver+0x85/0xe0
+ [<ffffffff81332a5a>] driver_unregister+0x5a/0x90
+ [<ffffffff8129da00>] pci_unregister_driver+0x40/0xb0
+ [<ffffffffa03518d0>] ath_pci_exit+0x10/0x20 [ath9k]
+ [<ffffffffa0353cd5>] ath9k_exit+0x9/0x2a [ath9k]
+ [<ffffffff81092838>] sys_delete_module+0x1a8/0x270
+ [<ffffffff8107ebe9>] ? up_read+0x9/0x10
+ [<ffffffff81011f82>] system_call_fastpath+0x16/0x1b
+---[ end trace fad957019ffdd40b ]---
+phy0: Removed STA 00:22:6b:56:fd:e8
+phy0: Destroyed STA 00:22:6b:56:fd:e8
+wlan31: deauthenticating from 00:22:6b:56:fd:e8 by local choice (reason=3)
+ath9k 0000:16:00.0: PCI INT A disabled
+
+The original lockdep fixed an issue where due to the new changes
+the driver was not disabling the bottom halves but it is incorrect
+to do this on the older kernels since IRQs are already disabled.
+
+Cc: Ming Lei <tom.leiming@gmail.com>
+Cc: Johannes Berg <johannes@sipsolutions.net>
+Cc: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/xmit.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/xmit.c
++++ b/drivers/net/wireless/ath/ath9k/xmit.c
+@@ -2244,7 +2244,7 @@ void ath_tx_node_cleanup(struct ath_soft
+               if (ATH_TXQ_SETUP(sc, i)) {
+                       txq = &sc->tx.txq[i];
+-                      spin_lock_bh(&txq->axq_lock);
++                      spin_lock(&txq->axq_lock);
+                       list_for_each_entry_safe(ac,
+                                       ac_tmp, &txq->axq_acq, list) {
+@@ -2265,7 +2265,7 @@ void ath_tx_node_cleanup(struct ath_soft
+                               }
+                       }
+-                      spin_unlock_bh(&txq->axq_lock);
++                      spin_unlock(&txq->axq_lock);
+               }
+       }
+ }
index 8476d1be4ec0b7e6e0a00987b7eb20071d73cfc5..374a119056d3c90202a592d19fba9b3f9df7d44e 100644 (file)
@@ -30,3 +30,10 @@ x86-amd-check-x86_feature_osvw-bit-before-accessing-osvw-msrs.patch
 btrfs-check-for-read-permission-on-src-file-in-the-clone-ioctl.patch
 alsa-hda-new-intel-hda-controller.patch
 drm-i915-disable-fbc-on-915gm-and-945gm.patch
+iwlwifi-check-for-aggregation-frame-and-queue.patch
+iwlwifi-clear-all-the-stop_queue-flag-after-load-firmware.patch
+cachefiles-fix-error-handling-in-cachefiles_determine_cache_security.patch
+mmap_min_addr-check-cap_sys_rawio-only-for-write.patch
+nilfs2-fix-sync-silent-failure.patch
+revert-ath9k-fix-lockdep-warning-when-unloading-module-on-stable-kernels.patch
+crypto-authenc-add-einprogress-check.patch