Update to 3.1.8
svn path=/dists/sid/linux-2.6/; revision=18457
This commit is contained in:
parent
7193956cc5
commit
85136b37c3
|
@ -1,17 +1,29 @@
|
|||
linux-2.6 (3.1.6-2) UNRELEASED; urgency=low
|
||||
linux-2.6 (3.1.8-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream stable update:
|
||||
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.7
|
||||
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.8
|
||||
- Revert "clockevents: Set noop handler in clockevents_exchange_device()",
|
||||
included in stable update 3.1.5 (Closes: #653398)
|
||||
- cfq-iosched: fix cfq_cic_link() race condition
|
||||
- binary_sysctl(): fix memory leak
|
||||
- cgroups: fix a css_set not found bug in cgroup_attach_proc
|
||||
- iwlwifi: allow to switch to HT40 if not associated (Closes: #653423)
|
||||
- futex: Fix uninterruptible loop due to gate_area
|
||||
- drm/radeon/kms: bail on BTC parts if MC ucode is missing
|
||||
- [sparc] sparc64: Fix masking and shifting in VIS fpcmp emulation.
|
||||
- llc: llc_cmsg_rcv was getting called after sk_eat_skb.
|
||||
- ipv4: reintroduce route cache garbage collector
|
||||
- Revert "rtc: Disable the alarm in the hardware" (Closes: #652869)
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* snapshot: Implement compat_ioctl (Closes: #502816)
|
||||
* iwlwifi: allow to switch to HT40 if not associated (Closes: #653423)
|
||||
* drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU
|
||||
(Closes: #646376)
|
||||
* net: introduce DST_NOPEER dst flag (fixes crash when using br_netfilter)
|
||||
* rtc: Fix alarm rollover when day or month is out-of-range (Closes: #646429)
|
||||
* l2tp: ensure sk->dst is still valid (Closes: #652503)
|
||||
* Update Russian debconf template translations (Yuri Kozlov)
|
||||
(Closes: #653716)
|
||||
* Revert "clockevents: Set noop handler in clockevents_exchange_device()",
|
||||
included in stable update 3.1.5 (Closes: #653398)
|
||||
|
||||
[ Jonathan Nieder ]
|
||||
* prerm: Print an error message when aborting removal of the running
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Date: Wed, 14 Dec 2011 08:22:36 -0800
|
||||
Subject: iwlwifi: allow to switch to HT40 if not associated
|
||||
|
||||
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
|
||||
commit 78feb35b8161acd95c33a703ed6ab6f554d29387 upstream.
|
||||
|
||||
My previous patch
|
||||
34a5b4b6af104cf18eb50748509528b9bdbc4036 iwlwifi: do not re-configure
|
||||
HT40 after associated
|
||||
|
||||
Fix the case of HT40 after association on specified AP, but it break the
|
||||
association for some APs and cause not able to establish connection.
|
||||
We need to address HT40 before and after addociation.
|
||||
|
||||
Reported-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Tested-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
|
||||
@@ -620,8 +620,8 @@ int iwlagn_mac_config(struct ieee80211_h
|
||||
if (ctx->ht.enabled) {
|
||||
/* if HT40 is used, it should not change
|
||||
* after associated except channel switch */
|
||||
- if (iwl_is_associated_ctx(ctx) &&
|
||||
- !ctx->ht.is_40mhz)
|
||||
+ if (!ctx->ht.is_40mhz ||
|
||||
+ !iwl_is_associated_ctx(ctx))
|
||||
iwlagn_config_ht40(conf, ctx);
|
||||
} else
|
||||
ctx->ht.is_40mhz = false;
|
|
@ -1,135 +0,0 @@
|
|||
From: Eric Dumazet <eric.dumazet@gmail.com>
|
||||
Date: Thu, 22 Dec 2011 04:15:53 +0000
|
||||
Subject: [PATCH 2/2] net: introduce DST_NOPEER dst flag
|
||||
|
||||
commit e688a604807647c9450f9c12a7cb6d027150a895 upstream.
|
||||
|
||||
Chris Boot reported crashes occurring in ipv6_select_ident().
|
||||
|
||||
[ 461.457562] RIP: 0010:[<ffffffff812dde61>] [<ffffffff812dde61>]
|
||||
ipv6_select_ident+0x31/0xa7
|
||||
|
||||
[ 461.578229] Call Trace:
|
||||
[ 461.580742] <IRQ>
|
||||
[ 461.582870] [<ffffffff812efa7f>] ? udp6_ufo_fragment+0x124/0x1a2
|
||||
[ 461.589054] [<ffffffff812dbfe0>] ? ipv6_gso_segment+0xc0/0x155
|
||||
[ 461.595140] [<ffffffff812700c6>] ? skb_gso_segment+0x208/0x28b
|
||||
[ 461.601198] [<ffffffffa03f236b>] ? ipv6_confirm+0x146/0x15e
|
||||
[nf_conntrack_ipv6]
|
||||
[ 461.608786] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
|
||||
[ 461.614227] [<ffffffff81271d64>] ? dev_hard_start_xmit+0x357/0x543
|
||||
[ 461.620659] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
|
||||
[ 461.626440] [<ffffffffa0379745>] ? br_parse_ip_options+0x19a/0x19a
|
||||
[bridge]
|
||||
[ 461.633581] [<ffffffff812722ff>] ? dev_queue_xmit+0x3af/0x459
|
||||
[ 461.639577] [<ffffffffa03747d2>] ? br_dev_queue_push_xmit+0x72/0x76
|
||||
[bridge]
|
||||
[ 461.646887] [<ffffffffa03791e3>] ? br_nf_post_routing+0x17d/0x18f
|
||||
[bridge]
|
||||
[ 461.653997] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
|
||||
[ 461.659473] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
|
||||
[ 461.665485] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
|
||||
[ 461.671234] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
|
||||
[ 461.677299] [<ffffffffa0379215>] ?
|
||||
nf_bridge_update_protocol+0x20/0x20 [bridge]
|
||||
[ 461.684891] [<ffffffffa03bb0e5>] ? nf_ct_zone+0xa/0x17 [nf_conntrack]
|
||||
[ 461.691520] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
|
||||
[ 461.697572] [<ffffffffa0374812>] ? NF_HOOK.constprop.8+0x3c/0x56
|
||||
[bridge]
|
||||
[ 461.704616] [<ffffffffa0379031>] ?
|
||||
nf_bridge_push_encap_header+0x1c/0x26 [bridge]
|
||||
[ 461.712329] [<ffffffffa037929f>] ? br_nf_forward_finish+0x8a/0x95
|
||||
[bridge]
|
||||
[ 461.719490] [<ffffffffa037900a>] ?
|
||||
nf_bridge_pull_encap_header+0x1c/0x27 [bridge]
|
||||
[ 461.727223] [<ffffffffa0379974>] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]
|
||||
[ 461.734292] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
|
||||
[ 461.739758] [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
|
||||
[ 461.746203] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
|
||||
[ 461.751950] [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
|
||||
[ 461.758378] [<ffffffffa037533a>] ? NF_HOOK.constprop.4+0x56/0x56
|
||||
[bridge]
|
||||
|
||||
This is caused by bridge netfilter special dst_entry (fake_rtable), a
|
||||
special shared entry, where attaching an inetpeer makes no sense.
|
||||
|
||||
Problem is present since commit 87c48fa3b46 (ipv6: make fragment
|
||||
identifications less predictable)
|
||||
|
||||
Introduce DST_NOPEER dst flag and make sure ipv6_select_ident() and
|
||||
__ip_select_ident() fallback to the 'no peer attached' handling.
|
||||
|
||||
Reported-by: Chris Boot <bootc@bootc.net>
|
||||
Tested-by: Chris Boot <bootc@bootc.net>
|
||||
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
include/net/dst.h | 1 +
|
||||
net/bridge/br_netfilter.c | 2 +-
|
||||
net/ipv4/route.c | 4 ++--
|
||||
net/ipv6/ip6_output.c | 2 +-
|
||||
4 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/net/dst.h b/include/net/dst.h
|
||||
index 6faec1a..75766b4 100644
|
||||
--- a/include/net/dst.h
|
||||
+++ b/include/net/dst.h
|
||||
@@ -53,6 +53,7 @@ struct dst_entry {
|
||||
#define DST_NOHASH 0x0008
|
||||
#define DST_NOCACHE 0x0010
|
||||
#define DST_NOCOUNT 0x0020
|
||||
+#define DST_NOPEER 0x0040
|
||||
|
||||
short error;
|
||||
short obsolete;
|
||||
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
|
||||
index 08757dc..fa8b8f7 100644
|
||||
--- a/net/bridge/br_netfilter.c
|
||||
+++ b/net/bridge/br_netfilter.c
|
||||
@@ -147,7 +147,7 @@ void br_netfilter_rtable_init(struct net_bridge *br)
|
||||
rt->dst.dev = br->dev;
|
||||
rt->dst.path = &rt->dst;
|
||||
dst_init_metrics(&rt->dst, br_dst_default_metrics, true);
|
||||
- rt->dst.flags = DST_NOXFRM;
|
||||
+ rt->dst.flags = DST_NOXFRM | DST_NOPEER;
|
||||
rt->dst.ops = &fake_dst_ops;
|
||||
}
|
||||
|
||||
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
|
||||
index 85cc053..94cdbc5 100644
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -1367,7 +1367,7 @@ void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more)
|
||||
{
|
||||
struct rtable *rt = (struct rtable *) dst;
|
||||
|
||||
- if (rt) {
|
||||
+ if (rt && !(rt->dst.flags & DST_NOPEER)) {
|
||||
if (rt->peer == NULL)
|
||||
rt_bind_peer(rt, rt->rt_dst, 1);
|
||||
|
||||
@@ -1378,7 +1378,7 @@ void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more)
|
||||
iph->id = htons(inet_getid(rt->peer, more));
|
||||
return;
|
||||
}
|
||||
- } else
|
||||
+ } else if (!rt)
|
||||
printk(KERN_DEBUG "rt_bind_peer(0) @%p\n",
|
||||
__builtin_return_address(0));
|
||||
|
||||
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
|
||||
index 84d0bd5..ec56271 100644
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -603,7 +603,7 @@ void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt)
|
||||
static atomic_t ipv6_fragmentation_id;
|
||||
int old, new;
|
||||
|
||||
- if (rt) {
|
||||
+ if (rt && !(rt->dst.flags & DST_NOPEER)) {
|
||||
struct inet_peer *peer;
|
||||
|
||||
if (!rt->rt6i_peer)
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
From: Frantisek Hrbata <fhrbata@redhat.com>
|
||||
Subject: [PATCH v2] oom: fix integer overflow of points in oom_badness
|
||||
Date: Mon, 31 Oct 2011 16:56:09 +0100
|
||||
|
||||
An integer overflow will happen on 64bit archs if task's sum of rss, swapents
|
||||
and nr_ptes exceeds (2^31)/1000 value. This was introduced by commit
|
||||
|
||||
f755a04 oom: use pte pages in OOM score
|
||||
|
||||
where the oom score computation was divided into several steps and it's no
|
||||
longer computed as one expression in unsigned long(rss, swapents, nr_pte are
|
||||
unsigned long), where the result value assigned to points(int) is in
|
||||
range(1..1000). So there could be an int overflow while computing
|
||||
|
||||
176 points *= 1000;
|
||||
|
||||
and points may have negative value. Meaning the oom score for a mem hog task
|
||||
will be one.
|
||||
|
||||
196 if (points <= 0)
|
||||
197 return 1;
|
||||
For example:
|
||||
[ 3366] 0 3366 35390480 24303939 5 0 0 oom01
|
||||
Out of memory: Kill process 3366 (oom01) score 1 or sacrifice child
|
||||
|
||||
Here the oom1 process consumes more than 24303939(rss)*4096~=92GB physical
|
||||
memory, but it's oom score is one.
|
||||
|
||||
In this situation the mem hog task is skipped and oom killer kills another and
|
||||
most probably innocent task with oom score greater than one.
|
||||
|
||||
The points variable should be of type long instead of int to prevent the int
|
||||
overflow.
|
||||
|
||||
Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
|
||||
---
|
||||
mm/oom_kill.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
|
||||
index 626303b..e9a1785 100644
|
||||
--- a/mm/oom_kill.c
|
||||
+++ b/mm/oom_kill.c
|
||||
@@ -162,7 +162,7 @@ static bool oom_unkillable_task(struct task_struct *p,
|
||||
unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *mem,
|
||||
const nodemask_t *nodemask, unsigned long totalpages)
|
||||
{
|
||||
- int points;
|
||||
+ long points;
|
||||
|
||||
if (oom_unkillable_task(p, mem, nodemask))
|
||||
return 0;
|
||||
--
|
||||
1.7.6.4
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Fri, 30 Dec 2011 17:48:49 +0100
|
||||
Subject: [PATCH] Revert "clockevents: Set noop handler in
|
||||
clockevents_exchange_device()"
|
||||
|
||||
This reverts commit aeed6baa702a285cf03b7dc4182ffc1a7f4e4ed6.
|
||||
It caused some systems to hang on resume (e.g. #653398).
|
||||
---
|
||||
kernel/time/clockevents.c | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c
|
||||
index 13dfaab..e4c699d 100644
|
||||
--- a/kernel/time/clockevents.c
|
||||
+++ b/kernel/time/clockevents.c
|
||||
@@ -286,7 +286,6 @@ void clockevents_exchange_device(struct clock_event_device *old,
|
||||
* released list and do a notify add later.
|
||||
*/
|
||||
if (old) {
|
||||
- old->event_handler = clockevents_handle_noop;
|
||||
clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED);
|
||||
list_del(&old->list);
|
||||
list_add(&old->list, &clockevents_released);
|
||||
--
|
||||
1.7.7.3
|
||||
|
|
@ -43,7 +43,6 @@
|
|||
+ bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch
|
||||
+ features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch
|
||||
+ bugfix/arm/ARM-ixp4xx-gpiolib-support.patch
|
||||
+ bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch
|
||||
+ bugfix/alpha/alpha-wire-up-accept4-syscall.patch
|
||||
+ bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch
|
||||
+ bugfix/powerpc/powerpc-ptrace-Fix-build-with-gcc-4.6.patch
|
||||
|
@ -87,9 +86,6 @@
|
|||
+ debian/inetpeer-hide-ABI-change-in-3.1.5.patch
|
||||
+ bugfix/all/cciss-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inte.patch
|
||||
+ bugfix/all/snapshot-Implement-compat_ioctl.patch
|
||||
+ bugfix/all/iwlwifi-allow-to-switch-to-ht40-if-not-associated.patch
|
||||
+ bugfix/all/drm-radeon-flush-read-cache-for-gtt-with-fence-on-r6.patch
|
||||
+ bugfix/all/net-introduce-DST_NOPEER-dst-flag.patch
|
||||
+ bugfix/all/rtc-Fix-alarm-rollover-when-day-or-month-is-out-of-r.patch
|
||||
+ bugfix/all/l2tp-ensure-sk-dst-is-still-valid.patch
|
||||
+ bugfix/all/revert-clockevents-Set-noop-handler-in-clockevents_e.patch
|
||||
|
|
Loading…
Reference in New Issue