From 4999495b59426f016c4a80b5e25f2d4959c19e59 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 18 Feb 2010 21:52:55 -0800 Subject: [PATCH] delete some patches --- ...tial-stack-space-expansion-to-rlimit.patch | 93 ------------- queue-2.6.27/series | 1 - ...tial-stack-space-expansion-to-rlimit.patch | 93 ------------- queue-2.6.31/series | 1 - queue-2.6.32/series | 1 - .../tg3-fix-5906-transmit-hangs.patch | 123 ------------------ 6 files changed, 312 deletions(-) delete mode 100644 queue-2.6.27/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch delete mode 100644 queue-2.6.31/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch delete mode 100644 queue-2.6.32/tg3-fix-5906-transmit-hangs.patch diff --git a/queue-2.6.27/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch b/queue-2.6.27/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch deleted file mode 100644 index a74e88c5a6b..00000000000 --- a/queue-2.6.27/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 803bf5ec259941936262d10ecc84511b76a20921 Mon Sep 17 00:00:00 2001 -From: Michael Neuling -Date: Wed, 10 Feb 2010 13:56:42 -0800 -Subject: fs/exec.c: restrict initial stack space expansion to rlimit - -From: Michael Neuling - -commit 803bf5ec259941936262d10ecc84511b76a20921 upstream. - -When reserving stack space for a new process, make sure we're not -attempting to expand the stack by more than rlimit allows. - -This fixes a bug caused by b6a2fea39318e43fee84fa7b0b90d68bed92d2ba ("mm: -variable length argument support") and unmasked by -fc63cf237078c86214abcb2ee9926d8ad289da9b ("exec: setup_arg_pages() fails -to return errors"). - -This bug means that when limiting the stack to less the 20*PAGE_SIZE (eg. -80K on 4K pages or 'ulimit -s 79') all processes will be killed before -they start. This is particularly bad with 64K pages, where a ulimit below -1280K will kill every process. - -To test, do: - - 'ulimit -s 15; ls' - -before and after the patch is applied. Before it's applied, 'ls' should -be killed. After the patch is applied, 'ls' should no longer be killed. - -A stack limit of 15KB since it's small enough to trigger 20*PAGE_SIZE. -Also 15KB not a multiple of PAGE_SIZE, which is a trickier case to handle -correctly with this code. - -4K pages should be fine to test with. - -[kosaki.motohiro@jp.fujitsu.com: cleanup] -[akpm@linux-foundation.org: cleanup cleanup] -Signed-off-by: Michael Neuling -Signed-off-by: KOSAKI Motohiro -Cc: Americo Wang -Cc: Anton Blanchard -Cc: Oleg Nesterov -Cc: James Morris -Cc: Ingo Molnar -Cc: Serge Hallyn -Cc: Benjamin Herrenschmidt -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - fs/exec.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - ---- a/fs/exec.c -+++ b/fs/exec.c -@@ -589,6 +589,9 @@ int setup_arg_pages(struct linux_binprm - struct vm_area_struct *prev = NULL; - unsigned long vm_flags; - unsigned long stack_base; -+ unsigned long stack_size; -+ unsigned long stack_expand; -+ unsigned long rlim_stack; - - #ifdef CONFIG_STACK_GROWSUP - /* Limit stack size to 1GB */ -@@ -647,10 +650,24 @@ int setup_arg_pages(struct linux_binprm - } - } - -+ stack_expand = EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ stack_size = vma->vm_end - vma->vm_start; -+ /* -+ * Align this down to a page boundary as expand_stack -+ * will align it up. -+ */ -+ rlim_stack = rlimit(RLIMIT_STACK) & PAGE_MASK; -+ rlim_stack = min(rlim_stack, stack_size); - #ifdef CONFIG_STACK_GROWSUP -- stack_base = vma->vm_end + EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ if (stack_size + stack_expand > rlim_stack) -+ stack_base = vma->vm_start + rlim_stack; -+ else -+ stack_base = vma->vm_end + stack_expand; - #else -- stack_base = vma->vm_start - EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ if (stack_size + stack_expand > rlim_stack) -+ stack_base = vma->vm_end - rlim_stack; -+ else -+ stack_base = vma->vm_start - stack_expand; - #endif - ret = expand_stack(vma, stack_base); - if (ret) diff --git a/queue-2.6.27/series b/queue-2.6.27/series index f23e781e730..72967312559 100644 --- a/queue-2.6.27/series +++ b/queue-2.6.27/series @@ -4,7 +4,6 @@ fix-race-in-tty_fasync-properly.patch futex-handle-futex-value-corruption-gracefully.patch futex-handle-user-space-corruption-gracefully.patch resource-add-helpers-for-fetching-rlimits.patch -fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch printk-robustify-printk-fix-2.patch hwmon-lm78-fix-i-o-resource-conflict-with-pnp.patch r8169-fix-receive-buffer-length-when-mtu-is-between-1515-and-1536.patch diff --git a/queue-2.6.31/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch b/queue-2.6.31/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch deleted file mode 100644 index f6f3d87d1ab..00000000000 --- a/queue-2.6.31/fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 803bf5ec259941936262d10ecc84511b76a20921 Mon Sep 17 00:00:00 2001 -From: Michael Neuling -Date: Wed, 10 Feb 2010 13:56:42 -0800 -Subject: fs/exec.c: restrict initial stack space expansion to rlimit - -From: Michael Neuling - -commit 803bf5ec259941936262d10ecc84511b76a20921 upstream. - -When reserving stack space for a new process, make sure we're not -attempting to expand the stack by more than rlimit allows. - -This fixes a bug caused by b6a2fea39318e43fee84fa7b0b90d68bed92d2ba ("mm: -variable length argument support") and unmasked by -fc63cf237078c86214abcb2ee9926d8ad289da9b ("exec: setup_arg_pages() fails -to return errors"). - -This bug means that when limiting the stack to less the 20*PAGE_SIZE (eg. -80K on 4K pages or 'ulimit -s 79') all processes will be killed before -they start. This is particularly bad with 64K pages, where a ulimit below -1280K will kill every process. - -To test, do: - - 'ulimit -s 15; ls' - -before and after the patch is applied. Before it's applied, 'ls' should -be killed. After the patch is applied, 'ls' should no longer be killed. - -A stack limit of 15KB since it's small enough to trigger 20*PAGE_SIZE. -Also 15KB not a multiple of PAGE_SIZE, which is a trickier case to handle -correctly with this code. - -4K pages should be fine to test with. - -[kosaki.motohiro@jp.fujitsu.com: cleanup] -[akpm@linux-foundation.org: cleanup cleanup] -Signed-off-by: Michael Neuling -Signed-off-by: KOSAKI Motohiro -Cc: Americo Wang -Cc: Anton Blanchard -Cc: Oleg Nesterov -Cc: James Morris -Cc: Ingo Molnar -Cc: Serge Hallyn -Cc: Benjamin Herrenschmidt -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - fs/exec.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - ---- a/fs/exec.c -+++ b/fs/exec.c -@@ -570,6 +570,9 @@ int setup_arg_pages(struct linux_binprm - struct vm_area_struct *prev = NULL; - unsigned long vm_flags; - unsigned long stack_base; -+ unsigned long stack_size; -+ unsigned long stack_expand; -+ unsigned long rlim_stack; - - #ifdef CONFIG_STACK_GROWSUP - /* Limit stack size to 1GB */ -@@ -628,10 +631,24 @@ int setup_arg_pages(struct linux_binprm - } - } - -+ stack_expand = EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ stack_size = vma->vm_end - vma->vm_start; -+ /* -+ * Align this down to a page boundary as expand_stack -+ * will align it up. -+ */ -+ rlim_stack = rlimit(RLIMIT_STACK) & PAGE_MASK; -+ rlim_stack = min(rlim_stack, stack_size); - #ifdef CONFIG_STACK_GROWSUP -- stack_base = vma->vm_end + EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ if (stack_size + stack_expand > rlim_stack) -+ stack_base = vma->vm_start + rlim_stack; -+ else -+ stack_base = vma->vm_end + stack_expand; - #else -- stack_base = vma->vm_start - EXTRA_STACK_VM_PAGES * PAGE_SIZE; -+ if (stack_size + stack_expand > rlim_stack) -+ stack_base = vma->vm_end - rlim_stack; -+ else -+ stack_base = vma->vm_start - stack_expand; - #endif - ret = expand_stack(vma, stack_base); - if (ret) diff --git a/queue-2.6.31/series b/queue-2.6.31/series index 44c7fefc258..d8638656709 100644 --- a/queue-2.6.31/series +++ b/queue-2.6.31/series @@ -7,7 +7,6 @@ ubi-fix-volume-creation-input-checking.patch cciss-make-cciss_seq_show-handle-holes-in-the-h-drv-array.patch cpufreq-fix-use-after-free-of-struct-powernow_k8_data.patch resource-add-helpers-for-fetching-rlimits.patch -fs-exec.c-restrict-initial-stack-space-expansion-to-rlimit.patch rtc-fm3130-add-missing-braces.patch ath5k-fix-eeprom-checksum-check-for-custom-sized-eeproms.patch clockevent-don-t-remove-broadcast-device-when-cpu-is-dead.patch diff --git a/queue-2.6.32/series b/queue-2.6.32/series index 08008eb9cf3..d8db48ad905 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -72,7 +72,6 @@ pktgen-fix-freezing-problem.patch x86-amd-iommu-fix-iommu-api-initialization-for-iommu-pt.patch x86-amd-iommu-fix-deassignment-of-a-device-from-the-pt_domain.patch x86-re-get-cfg_new-in-case-reuse-move-irq_desc.patch -tg3-fix-5906-transmit-hangs.patch staging-fix-rtl8187se-compilation-errors-with-mac80211.patch alsa-usb-audio-avoid-oops-after-disconnect.patch serial-8250-add-serial-transmitter-fully-empty-test.patch diff --git a/queue-2.6.32/tg3-fix-5906-transmit-hangs.patch b/queue-2.6.32/tg3-fix-5906-transmit-hangs.patch deleted file mode 100644 index 1fb1103609d..00000000000 --- a/queue-2.6.32/tg3-fix-5906-transmit-hangs.patch +++ /dev/null @@ -1,123 +0,0 @@ -From mike@mpagano.com Fri Feb 12 15:17:42 2010 -From: Mike Pagano -Date: Tue, 2 Feb 2010 19:49:21 -0500 -Subject: tg3: Fix 5906 transmit hangs -To: stable@kernel.org, mcarlson@broadcom.com -Message-ID: <201002021949.21183.mike@mpagano.com> - -From: Mike Pagano - -This is a backport of commit 92c6b8d16a36df3f28b2537bed2a56491fb08f11 to -kernel version 2.6.32. The gentoo bug report can be found at -https://bugs.gentoo.org/show_bug.cgi?id=301091. Thanks to Matt Carlson -for his assistance. The original description is as follows: - -The 5906 has trouble with fragments that are less than 8 bytes in size. -This patch works around the problem by pivoting the 5906's transmit -routine to tg3_start_xmit_dma_bug() and introducing a new SHORT_DMA_BUG -flag that enables code to detect and react to the problematic condition. - -Signed-off-by: Mike Pagano -Cc: Matt Carlson -Cc: Michael Chan -Cc: David S. Miller -Signed-off-by: Greg Kroah-Hartman - - ---- - drivers/net/tg3.c | 35 +++++++++++++++++++---------------- - drivers/net/tg3.h | 3 +++ - 2 files changed, 22 insertions(+), 16 deletions(-) - ---- a/drivers/net/tg3.c -+++ b/drivers/net/tg3.c -@@ -5392,7 +5392,7 @@ static netdev_tx_t tg3_start_xmit_dma_bu - mss = 0; - if ((mss = skb_shinfo(skb)->gso_size) != 0) { - struct iphdr *iph; -- int tcp_opt_len, ip_tcp_len, hdr_len; -+ u32 tcp_opt_len, ip_tcp_len, hdr_len; - - if (skb_header_cloned(skb) && - pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { -@@ -5423,8 +5423,10 @@ static netdev_tx_t tg3_start_xmit_dma_bu - IPPROTO_TCP, - 0); - -- if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO) || -- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)) { -+ if (tp->tg3_flags2 & TG3_FLG2_HW_TSO_2) -+ mss |= hdr_len << 9; -+ else if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_1) || -+ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { - if (tcp_opt_len || iph->ihl > 5) { - int tsflags; - -@@ -5459,6 +5461,9 @@ static netdev_tx_t tg3_start_xmit_dma_bu - - would_hit_hwbug = 0; - -+ if ((tp->tg3_flags3 & TG3_FLG3_SHORT_DMA_BUG) && len <= 8) -+ would_hit_hwbug = 1; -+ - if (tp->tg3_flags3 & TG3_FLG3_5701_DMA_BUG) - would_hit_hwbug = 1; - else if (tg3_4g_overflow_test(mapping, len)) -@@ -5482,6 +5487,10 @@ static netdev_tx_t tg3_start_xmit_dma_bu - - tnapi->tx_buffers[entry].skb = NULL; - -+ if ((tp->tg3_flags3 & TG3_FLG3_SHORT_DMA_BUG) && -+ len <= 8) -+ would_hit_hwbug = 1; -+ - if (tg3_4g_overflow_test(mapping, len)) - would_hit_hwbug = 1; - -@@ -12594,18 +12603,13 @@ static int __devinit tg3_get_invariants( - tp->pci_chip_rev_id <= CHIPREV_ID_5714_A2 && - tp->pdev_peer == tp->pdev)) - tp->tg3_flags &= ~TG3_FLAG_SUPPORT_MSI; -+ } - -- if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) || -- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { -- tp->tg3_flags2 |= TG3_FLG2_HW_TSO_2; -- tp->tg3_flags2 |= TG3_FLG2_1SHOT_MSI; -- } else { -- tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1 | TG3_FLG2_TSO_BUG; -- if (GET_ASIC_REV(tp->pci_chip_rev_id) == -- ASIC_REV_5750 && -- tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2) -- tp->tg3_flags2 &= ~TG3_FLG2_TSO_BUG; -- } -+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) -+ tp->tg3_flags3 |= TG3_FLG3_SHORT_DMA_BUG; -+ else if (!(tp->tg3_flags3 & TG3_FLG3_5755_PLUS)) { -+ tp->tg3_flags3 |= TG3_FLG3_4G_DMA_BNDRY_BUG; -+ tp->tg3_flags3 |= TG3_FLG3_40BIT_DMA_LIMIT_BUG; - } - - tp->irq_max = 1; -@@ -13975,8 +13979,7 @@ static int __devinit tg3_init_one(struct - goto err_out_iounmap; - } - -- if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) || -- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) -+ if (tp->tg3_flags3 & TG3_FLG3_5755_PLUS) - dev->netdev_ops = &tg3_netdev_ops; - else - dev->netdev_ops = &tg3_netdev_ops_dma_bug; ---- a/drivers/net/tg3.h -+++ b/drivers/net/tg3.h -@@ -2759,6 +2759,9 @@ struct tg3 { - #define TG3_FLG3_TOGGLE_10_100_L1PLLPD 0x00008000 - #define TG3_FLG3_PHY_IS_FET 0x00010000 - #define TG3_FLG3_ENABLE_RSS 0x00020000 -+#define TG3_FLG3_4G_DMA_BNDRY_BUG 0x00080000 -+#define TG3_FLG3_40BIT_DMA_LIMIT_BUG 0x00100000 -+#define TG3_FLG3_SHORT_DMA_BUG 0x00200000 - - struct timer_list timer; - u16 timer_counter; -- 2.47.3