From 85136b37c3ff39a85c0fa0ced140115ff5f167fe Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 8 Jan 2012 00:24:03 +0000 Subject: [PATCH] Update to 3.1.8 svn path=/dists/sid/linux-2.6/; revision=18457 --- debian/changelog | 22 ++- ...-to-switch-to-ht40-if-not-associated.patch | 39 ----- .../net-introduce-DST_NOPEER-dst-flag.patch | 135 ------------------ ...er-overflow-of-points-in-oom_badness.patch | 54 ------- ...ts-Set-noop-handler-in-clockevents_e.patch | 26 ---- debian/patches/series/base | 4 - 6 files changed, 17 insertions(+), 263 deletions(-) delete mode 100644 debian/patches/bugfix/all/iwlwifi-allow-to-switch-to-ht40-if-not-associated.patch delete mode 100644 debian/patches/bugfix/all/net-introduce-DST_NOPEER-dst-flag.patch delete mode 100644 debian/patches/bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch delete mode 100644 debian/patches/bugfix/all/revert-clockevents-Set-noop-handler-in-clockevents_e.patch diff --git a/debian/changelog b/debian/changelog index abf0b9bc9..aa9789eb9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/debian/patches/bugfix/all/iwlwifi-allow-to-switch-to-ht40-if-not-associated.patch b/debian/patches/bugfix/all/iwlwifi-allow-to-switch-to-ht40-if-not-associated.patch deleted file mode 100644 index c0ac093b6..000000000 --- a/debian/patches/bugfix/all/iwlwifi-allow-to-switch-to-ht40-if-not-associated.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Wey-Yi Guy -Date: Wed, 14 Dec 2011 08:22:36 -0800 -Subject: iwlwifi: allow to switch to HT40 if not associated - -From: Wey-Yi Guy - -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 -Signed-off-by: Wey-Yi Guy -Tested-by: Andrej Gelenberg -Signed-off-by: John W. Linville -Signed-off-by: Greg Kroah-Hartman - ---- - 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; diff --git a/debian/patches/bugfix/all/net-introduce-DST_NOPEER-dst-flag.patch b/debian/patches/bugfix/all/net-introduce-DST_NOPEER-dst-flag.patch deleted file mode 100644 index 5367039ac..000000000 --- a/debian/patches/bugfix/all/net-introduce-DST_NOPEER-dst-flag.patch +++ /dev/null @@ -1,135 +0,0 @@ -From: Eric Dumazet -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:[] [] -ipv6_select_ident+0x31/0xa7 - -[ 461.578229] Call Trace: -[ 461.580742] -[ 461.582870] [] ? udp6_ufo_fragment+0x124/0x1a2 -[ 461.589054] [] ? ipv6_gso_segment+0xc0/0x155 -[ 461.595140] [] ? skb_gso_segment+0x208/0x28b -[ 461.601198] [] ? ipv6_confirm+0x146/0x15e -[nf_conntrack_ipv6] -[ 461.608786] [] ? nf_iterate+0x41/0x77 -[ 461.614227] [] ? dev_hard_start_xmit+0x357/0x543 -[ 461.620659] [] ? nf_hook_slow+0x73/0x111 -[ 461.626440] [] ? br_parse_ip_options+0x19a/0x19a -[bridge] -[ 461.633581] [] ? dev_queue_xmit+0x3af/0x459 -[ 461.639577] [] ? br_dev_queue_push_xmit+0x72/0x76 -[bridge] -[ 461.646887] [] ? br_nf_post_routing+0x17d/0x18f -[bridge] -[ 461.653997] [] ? nf_iterate+0x41/0x77 -[ 461.659473] [] ? br_flood+0xfa/0xfa [bridge] -[ 461.665485] [] ? nf_hook_slow+0x73/0x111 -[ 461.671234] [] ? br_flood+0xfa/0xfa [bridge] -[ 461.677299] [] ? -nf_bridge_update_protocol+0x20/0x20 [bridge] -[ 461.684891] [] ? nf_ct_zone+0xa/0x17 [nf_conntrack] -[ 461.691520] [] ? br_flood+0xfa/0xfa [bridge] -[ 461.697572] [] ? NF_HOOK.constprop.8+0x3c/0x56 -[bridge] -[ 461.704616] [] ? -nf_bridge_push_encap_header+0x1c/0x26 [bridge] -[ 461.712329] [] ? br_nf_forward_finish+0x8a/0x95 -[bridge] -[ 461.719490] [] ? -nf_bridge_pull_encap_header+0x1c/0x27 [bridge] -[ 461.727223] [] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge] -[ 461.734292] [] ? nf_iterate+0x41/0x77 -[ 461.739758] [] ? __br_deliver+0xa0/0xa0 [bridge] -[ 461.746203] [] ? nf_hook_slow+0x73/0x111 -[ 461.751950] [] ? __br_deliver+0xa0/0xa0 [bridge] -[ 461.758378] [] ? 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 -Tested-by: Chris Boot -Signed-off-by: Eric Dumazet -Signed-off-by: David S. Miller ---- - 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 - diff --git a/debian/patches/bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch b/debian/patches/bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch deleted file mode 100644 index 6f8d02ab1..000000000 --- a/debian/patches/bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Frantisek Hrbata -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 ---- - 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 - diff --git a/debian/patches/bugfix/all/revert-clockevents-Set-noop-handler-in-clockevents_e.patch b/debian/patches/bugfix/all/revert-clockevents-Set-noop-handler-in-clockevents_e.patch deleted file mode 100644 index ebc436311..000000000 --- a/debian/patches/bugfix/all/revert-clockevents-Set-noop-handler-in-clockevents_e.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Ben Hutchings -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 - diff --git a/debian/patches/series/base b/debian/patches/series/base index b1038da2c..0a42f1878 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -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