Linux 3.2.3
This commit is contained in:
parent
8b0318d553
commit
85243fee59
31
kernel.spec
31
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 <davej@redhat.com>
|
||||
- Linux 3.2.3
|
||||
|
||||
* Thu Feb 02 2012 Dennis Gilmore <dennis@ausil.us>
|
||||
- add patch to ensure that mfd-core is builtin when building nvec on tegra
|
||||
- build nvec-leds on tegra kernel
|
||||
|
|
|
@ -1,154 +0,0 @@
|
|||
Path: news.gmane.org!not-for-mail
|
||||
From: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
|
||||
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 <linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
|
||||
Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
To: John Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
|
||||
Original-X-From: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jan 18 14:10:44 2012
|
||||
Return-path: <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
|
||||
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 <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
|
||||
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
|
||||
<rfc822;glkwg-linux-wireless@m.gmane.org>);
|
||||
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
|
||||
<rfc822;linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
|
||||
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 <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>)
|
||||
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: <linux-wireless.vger.kernel.org>
|
||||
X-Mailing-List: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
|
||||
Xref: news.gmane.org gmane.linux.kernel.wireless.general:84095
|
||||
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel.wireless.general/84095>
|
||||
|
||||
From: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
|
||||
|
||||
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 <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
Tested-by: Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
Signed-off-by: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
|
||||
---
|
||||
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
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
From efc3dbc37412c027e363736b4f4c74ee5e8ecffc Mon Sep 17 00:00:00 2001
|
||||
From: "David S. Miller" <davem@davemloft.net>
|
||||
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 <kumaras@chelsio.com>
|
||||
Reported-by: Josh Boyer <jwboyer@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
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
|
||||
|
|
@ -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__,
|
2
sources
2
sources
|
@ -1,2 +1,2 @@
|
|||
364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz
|
||||
5e53edbf75fcaa3a8d1697f3a053102d patch-3.2.2.xz
|
||||
4ffcd30b95b4d2435be40405507319dd patch-3.2.3.xz
|
||||
|
|
|
@ -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 <stefanb@linux.vnet.ibm.com>
|
||||
|
||||
--- 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;
|
Loading…
Reference in New Issue