From 85243fee591fa1aeacd90e818211cf16a2a89cd5 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 3 Feb 2012 13:38:02 -0500 Subject: [PATCH] Linux 3.2.3 --- kernel.spec | 31 +--- ...1-fix-work-removal-on-deauth-request.patch | 154 ------------------ ...ds_sock_lock-BH-rather-than-IRQ-safe.patch | 116 ------------- realtek_async_autopm.patch | 13 -- sources | 2 +- tpm_tis-delay-after-aborting-cmd.patch | 17 -- 6 files changed, 5 insertions(+), 328 deletions(-) delete mode 100644 mac80211-fix-work-removal-on-deauth-request.patch delete mode 100644 rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch delete mode 100644 realtek_async_autopm.patch delete mode 100644 tpm_tis-delay-after-aborting-cmd.patch diff --git a/kernel.spec b/kernel.spec index 3b4f4423b..0e571faef 100644 --- a/kernel.spec +++ b/kernel.spec @@ -51,7 +51,7 @@ Summary: The Linux kernel %define fake_sublevel %(echo $((40 + %{real_sublevel}))) # Do we have a -stable update to apply? -%define stable_update 2 +%define stable_update 3 # Is it a -stable RC? %define stable_rc 0 # Set rpm version accordingly @@ -665,9 +665,6 @@ Patch21045: nfs-client-freezer.patch #rhbz 590880 Patch21046: alps.patch -#rhbz 746097 -Patch21049: tpm_tis-delay-after-aborting-cmd.patch - Patch21070: ext4-Support-check-none-nocheck-mount-options.patch Patch21071: ext4-Fix-error-handling-on-inode-bitmap-corruption.patch Patch21072: ext3-Fix-error-handling-on-inode-bitmap-corruption.patch @@ -704,16 +701,6 @@ Patch21101: hpsa-add-irqf-shared.patch Patch21225: pci-Rework-ASPM-disable-code.patch -Patch21227: mac80211-fix-work-removal-on-deauth-request.patch - -#rhbz 718790 -Patch21230: rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch - -#rhbz 784345 -Patch21231: realtek_async_autopm.patch - -Patch22000: rcu-reintroduce-missing-calls.patch - %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1274,17 +1261,12 @@ ApplyPatch hpsa-add-irqf-shared.patch ApplyPatch pci-Rework-ASPM-disable-code.patch -ApplyPatch mac80211-fix-work-removal-on-deauth-request.patch - #rhbz 717735 ApplyPatch nfs-client-freezer.patch #rhbz 590880 ApplyPatch alps.patch -#rhbz 746097 -ApplyPatch tpm_tis-delay-after-aborting-cmd.patch - #rhbz 771058 ApplyPatch msi-irq-sysfs-warning.patch @@ -1304,20 +1286,12 @@ ApplyPatch procfs-parse-mount-options.patch ApplyPatch procfs-add-hidepid-and-gid-mount-options.patch ApplyPatch proc-fix-null-pointer-deref-in-proc_pid_permission.patch -ApplyPatch rcu-reintroduce-missing-calls.patch - -#rhbz 718790 -ApplyPatch rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch - #rhbz 783211 ApplyPatch fs-Inval-cache-for-parent-block-device-if-fsync-called-on-part.patch # Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331 ApplyPatch bcma-brcmsmac-compat.patch -#rhbz 784345 -ApplyPatch realtek_async_autopm.patch - # END OF PATCH APPLICATIONS %endif @@ -1965,6 +1939,9 @@ fi # and build. %changelog +* Fri Feb 03 2012 Dave Jones +- Linux 3.2.3 + * Thu Feb 02 2012 Dennis Gilmore - add patch to ensure that mfd-core is builtin when building nvec on tegra - build nvec-leds on tegra kernel diff --git a/mac80211-fix-work-removal-on-deauth-request.patch b/mac80211-fix-work-removal-on-deauth-request.patch deleted file mode 100644 index 60b91d3cf..000000000 --- a/mac80211-fix-work-removal-on-deauth-request.patch +++ /dev/null @@ -1,154 +0,0 @@ -Path: news.gmane.org!not-for-mail -From: Johannes Berg -Newsgroups: gmane.linux.kernel.wireless.general -Subject: [PATCH 3.3] mac80211: fix work removal on deauth request -Date: Wed, 18 Jan 2012 14:10:25 +0100 -Lines: 107 -Approved: news@gmane.org -Message-ID: <1326892225.4778.5.camel@jlt3.sipsolutions.net> -NNTP-Posting-Host: lo.gmane.org -Mime-Version: 1.0 -Content-Type: text/plain; charset="UTF-8" -Content-Transfer-Encoding: 7bit -X-Trace: dough.gmane.org 1326892249 18013 80.91.229.12 (18 Jan 2012 13:10:49 GMT) -X-Complaints-To: usenet@dough.gmane.org -NNTP-Posting-Date: Wed, 18 Jan 2012 13:10:49 +0000 (UTC) -Cc: linux-wireless , - Pontus Fuchs -To: John Linville -Original-X-From: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jan 18 14:10:44 2012 -Return-path: -Envelope-to: glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org -Original-Received: from vger.kernel.org ([209.132.180.67]) - by lo.gmane.org with esmtp (Exim 4.69) - (envelope-from ) - id 1RnVHo-00044l-Aq - for glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 18 Jan 2012 14:10:44 +0100 -Original-Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand - id S1757410Ab2ARNK3 (ORCPT - ); - Wed, 18 Jan 2012 08:10:29 -0500 -Original-Received: from he.sipsolutions.net ([78.46.109.217]:45023 "EHLO - sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1754365Ab2ARNK2 (ORCPT - ); - Wed, 18 Jan 2012 08:10:28 -0500 -Original-Received: by sipsolutions.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) - (Exim 4.77) - (envelope-from ) - id 1RnVHW-0004hf-Lx; Wed, 18 Jan 2012 14:10:26 +0100 -X-Mailer: Evolution 2.30.3 -Original-Sender: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org -Xref: news.gmane.org gmane.linux.kernel.wireless.general:84095 -Archived-At: - -From: Johannes Berg - -When deauth is requested while an auth or assoc -work item is in progress, we currently delete it -without regard for any state it might need to -clean up. Fix it by cleaning up for those items. - -In the case Pontus found, the problem manifested -itself as such: - -authenticate with 00:23:69:aa:dd:7b (try 1) -authenticated -failed to insert Dummy STA entry for the AP (error -17) -deauthenticating from 00:23:69:aa:dd:7b by local choice (reason=2) - -It could also happen differently if the driver -uses the tx_sync callback. - -We can't just call the ->done() method of the work -items because that will lock up due to the locking -in cfg80211. This fix isn't very clean, but that -seems acceptable since I have patches pending to -remove this code completely. - -Cc: stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org -Reported-by: Pontus Fuchs -Tested-by: Pontus Fuchs -Signed-off-by: Johannes Berg ---- - net/mac80211/mlme.c | 38 +++++++++++++++++++++++++++----------- - 1 file changed, 27 insertions(+), 11 deletions(-) - ---- a/net/mac80211/mlme.c 2012-01-18 14:04:33.000000000 +0100 -+++ b/net/mac80211/mlme.c 2012-01-18 14:04:34.000000000 +0100 -@@ -2750,7 +2750,6 @@ int ieee80211_mgd_deauth(struct ieee8021 - { - struct ieee80211_local *local = sdata->local; - struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; -- struct ieee80211_work *wk; - u8 bssid[ETH_ALEN]; - bool assoc_bss = false; - -@@ -2763,30 +2762,47 @@ int ieee80211_mgd_deauth(struct ieee8021 - assoc_bss = true; - } else { - bool not_auth_yet = false; -+ struct ieee80211_work *tmp, *wk = NULL; - - mutex_unlock(&ifmgd->mtx); - - mutex_lock(&local->mtx); -- list_for_each_entry(wk, &local->work_list, list) { -- if (wk->sdata != sdata) -+ list_for_each_entry(tmp, &local->work_list, list) { -+ if (tmp->sdata != sdata) - continue; - -- if (wk->type != IEEE80211_WORK_DIRECT_PROBE && -- wk->type != IEEE80211_WORK_AUTH && -- wk->type != IEEE80211_WORK_ASSOC && -- wk->type != IEEE80211_WORK_ASSOC_BEACON_WAIT) -+ if (tmp->type != IEEE80211_WORK_DIRECT_PROBE && -+ tmp->type != IEEE80211_WORK_AUTH && -+ tmp->type != IEEE80211_WORK_ASSOC && -+ tmp->type != IEEE80211_WORK_ASSOC_BEACON_WAIT) - continue; - -- if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN)) -+ if (memcmp(req->bss->bssid, tmp->filter_ta, ETH_ALEN)) - continue; - -- not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE; -- list_del_rcu(&wk->list); -- free_work(wk); -+ not_auth_yet = tmp->type == IEEE80211_WORK_DIRECT_PROBE; -+ list_del_rcu(&tmp->list); -+ synchronize_rcu(); -+ wk = tmp; - break; - } - mutex_unlock(&local->mtx); - -+ if (wk && wk->type == IEEE80211_WORK_ASSOC) { -+ /* clean up dummy sta & TX sync */ -+ sta_info_destroy_addr(wk->sdata, wk->filter_ta); -+ if (wk->assoc.synced) -+ drv_finish_tx_sync(local, wk->sdata, -+ wk->filter_ta, -+ IEEE80211_TX_SYNC_ASSOC); -+ } else if (wk && wk->type == IEEE80211_WORK_AUTH) { -+ if (wk->probe_auth.synced) -+ drv_finish_tx_sync(local, wk->sdata, -+ wk->filter_ta, -+ IEEE80211_TX_SYNC_AUTH); -+ } -+ kfree(wk); -+ - /* - * If somebody requests authentication and we haven't - * sent out an auth frame yet there's no need to send - - --- -To unsubscribe from this list: send the line "unsubscribe linux-wireless" in -the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - diff --git a/rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch b/rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch deleted file mode 100644 index 0946aad6b..000000000 --- a/rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch +++ /dev/null @@ -1,116 +0,0 @@ -From efc3dbc37412c027e363736b4f4c74ee5e8ecffc Mon Sep 17 00:00:00 2001 -From: "David S. Miller" -Date: Tue, 24 Jan 2012 17:03:44 -0500 -Subject: [PATCH] rds: Make rds_sock_lock BH rather than IRQ safe. - -rds_sock_info() triggers locking warnings because we try to perform a -local_bh_enable() (via sock_i_ino()) while hardware interrupts are -disabled (via taking rds_sock_lock). - -There is no reason for rds_sock_lock to be a hardware IRQ disabling -lock, none of these access paths run in hardware interrupt context. - -Therefore making it a BH disabling lock is safe and sufficient to -fix this bug. - -Reported-by: Kumar Sanghvi -Reported-by: Josh Boyer -Signed-off-by: David S. Miller ---- - net/rds/af_rds.c | 20 ++++++++------------ - 1 files changed, 8 insertions(+), 12 deletions(-) - -diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c -index bb6ad81..424ff62 100644 ---- a/net/rds/af_rds.c -+++ b/net/rds/af_rds.c -@@ -68,7 +68,6 @@ static int rds_release(struct socket *sock) - { - struct sock *sk = sock->sk; - struct rds_sock *rs; -- unsigned long flags; - - if (!sk) - goto out; -@@ -94,10 +93,10 @@ static int rds_release(struct socket *sock) - rds_rdma_drop_keys(rs); - rds_notify_queue_get(rs, NULL); - -- spin_lock_irqsave(&rds_sock_lock, flags); -+ spin_lock_bh(&rds_sock_lock); - list_del_init(&rs->rs_item); - rds_sock_count--; -- spin_unlock_irqrestore(&rds_sock_lock, flags); -+ spin_unlock_bh(&rds_sock_lock); - - rds_trans_put(rs->rs_transport); - -@@ -409,7 +408,6 @@ static const struct proto_ops rds_proto_ops = { - - static int __rds_create(struct socket *sock, struct sock *sk, int protocol) - { -- unsigned long flags; - struct rds_sock *rs; - - sock_init_data(sock, sk); -@@ -426,10 +424,10 @@ static int __rds_create(struct socket *sock, struct sock *sk, int protocol) - spin_lock_init(&rs->rs_rdma_lock); - rs->rs_rdma_keys = RB_ROOT; - -- spin_lock_irqsave(&rds_sock_lock, flags); -+ spin_lock_bh(&rds_sock_lock); - list_add_tail(&rs->rs_item, &rds_sock_list); - rds_sock_count++; -- spin_unlock_irqrestore(&rds_sock_lock, flags); -+ spin_unlock_bh(&rds_sock_lock); - - return 0; - } -@@ -471,12 +469,11 @@ static void rds_sock_inc_info(struct socket *sock, unsigned int len, - { - struct rds_sock *rs; - struct rds_incoming *inc; -- unsigned long flags; - unsigned int total = 0; - - len /= sizeof(struct rds_info_message); - -- spin_lock_irqsave(&rds_sock_lock, flags); -+ spin_lock_bh(&rds_sock_lock); - - list_for_each_entry(rs, &rds_sock_list, rs_item) { - read_lock(&rs->rs_recv_lock); -@@ -492,7 +489,7 @@ static void rds_sock_inc_info(struct socket *sock, unsigned int len, - read_unlock(&rs->rs_recv_lock); - } - -- spin_unlock_irqrestore(&rds_sock_lock, flags); -+ spin_unlock_bh(&rds_sock_lock); - - lens->nr = total; - lens->each = sizeof(struct rds_info_message); -@@ -504,11 +501,10 @@ static void rds_sock_info(struct socket *sock, unsigned int len, - { - struct rds_info_socket sinfo; - struct rds_sock *rs; -- unsigned long flags; - - len /= sizeof(struct rds_info_socket); - -- spin_lock_irqsave(&rds_sock_lock, flags); -+ spin_lock_bh(&rds_sock_lock); - - if (len < rds_sock_count) - goto out; -@@ -529,7 +525,7 @@ out: - lens->nr = rds_sock_count; - lens->each = sizeof(struct rds_info_socket); - -- spin_unlock_irqrestore(&rds_sock_lock, flags); -+ spin_unlock_bh(&rds_sock_lock); - } - - static void rds_exit(void) --- -1.7.7.6 - diff --git a/realtek_async_autopm.patch b/realtek_async_autopm.patch deleted file mode 100644 index 3c6b45cca..000000000 --- a/realtek_async_autopm.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c -index 1f62723..d32f720 100644 ---- a/drivers/usb/storage/realtek_cr.c -+++ b/drivers/usb/storage/realtek_cr.c -@@ -789,7 +789,7 @@ static void rts51x_suspend_timer_fn(unsigned long data) - rts51x_set_stat(chip, RTS51X_STAT_SS); - /* ignore mass storage interface's children */ - pm_suspend_ignore_children(&us->pusb_intf->dev, true); -- usb_autopm_put_interface(us->pusb_intf); -+ usb_autopm_put_interface_async(us->pusb_intf); - US_DEBUGP("%s: RTS51X_STAT_SS 01," - "intf->pm_usage_cnt:%d, power.usage:%d\n", - __func__, diff --git a/sources b/sources index 6c0833def..c395e0ba0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -5e53edbf75fcaa3a8d1697f3a053102d patch-3.2.2.xz +4ffcd30b95b4d2435be40405507319dd patch-3.2.3.xz diff --git a/tpm_tis-delay-after-aborting-cmd.patch b/tpm_tis-delay-after-aborting-cmd.patch deleted file mode 100644 index 315284f50..000000000 --- a/tpm_tis-delay-after-aborting-cmd.patch +++ /dev/null @@ -1,17 +0,0 @@ -This patch adds a delay after aborting a command. Some TPMs need -this and will not process the subsequent command correctly otherwise. - -Signed-off-by: Stefan Berger - ---- linux-3.1.noarch/drivers/char/tpm/tpm_tis.c~ 2011-12-20 18:08:01.654464487 -0500 -+++ linux-3.1.noarch/drivers/char/tpm/tpm_tis.c 2011-12-20 18:08:23.476380364 -0500 -@@ -432,6 +432,9 @@ static int probe_itpm(struct tpm_chip *c - out: - itpm = rem_itpm; - tpm_tis_ready(chip); -+ /* some TPMs need a break here otherwise they will not work -+ * correctly on the immediately subsequent command */ -+ msleep(chip->vendor.timeout_b); - release_locality(chip, chip->vendor.locality, 0); - - return rc;