From: Greg Kroah-Hartman Date: Mon, 7 Jul 2014 23:22:57 +0000 (-0700) Subject: delete queue-3.15/proc-stat-convert-to-single_open_size.patch X-Git-Tag: v3.4.98~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a9b8adf19d99817228544f32b95485d10cd8c56f;p=thirdparty%2Fkernel%2Fstable-queue.git delete queue-3.15/proc-stat-convert-to-single_open_size.patch --- diff --git a/queue-3.15/proc-stat-convert-to-single_open_size.patch b/queue-3.15/proc-stat-convert-to-single_open_size.patch deleted file mode 100644 index f20c81645a8..00000000000 --- a/queue-3.15/proc-stat-convert-to-single_open_size.patch +++ /dev/null @@ -1,80 +0,0 @@ -From f74373a5cc7a0155d232c4e999648c7a95435bb2 Mon Sep 17 00:00:00 2001 -From: Heiko Carstens -Date: Wed, 2 Jul 2014 15:22:37 -0700 -Subject: /proc/stat: convert to single_open_size() - -From: Heiko Carstens - -commit f74373a5cc7a0155d232c4e999648c7a95435bb2 upstream. - -These two patches are supposed to "fix" failed order-4 memory -allocations which have been observed when reading /proc/stat. The -problem has been observed on s390 as well as on x86. - -To address the problem change the seq_file memory allocations to -fallback to use vmalloc, so that allocations also work if memory is -fragmented. - -This approach seems to be simpler and less intrusive than changing -/proc/stat to use an interator. Also it "fixes" other users as well, -which use seq_file's single_open() interface. - -This patch (of 2): - -Use seq_file's single_open_size() to preallocate a buffer that is large -enough to hold the whole output, instead of open coding it. Also -calculate the requested size using the number of online cpus instead of -possible cpus, since the size of the output only depends on the number -of online cpus. - -Signed-off-by: Heiko Carstens -Acked-by: David Rientjes -Cc: Ian Kent -Cc: Hendrik Brueckner -Cc: Thorsten Diehl -Cc: Andrea Righi -Cc: Christoph Hellwig -Cc: Al Viro -Cc: Stefan Bader -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - fs/proc/stat.c | 22 ++-------------------- - 1 file changed, 2 insertions(+), 20 deletions(-) - ---- a/fs/proc/stat.c -+++ b/fs/proc/stat.c -@@ -184,29 +184,11 @@ static int show_stat(struct seq_file *p, - - static int stat_open(struct inode *inode, struct file *file) - { -- size_t size = 1024 + 128 * num_possible_cpus(); -- char *buf; -- struct seq_file *m; -- int res; -+ size_t size = 1024 + 128 * num_online_cpus(); - - /* minimum size to display an interrupt count : 2 bytes */ - size += 2 * nr_irqs; -- -- /* don't ask for more than the kmalloc() max size */ -- if (size > KMALLOC_MAX_SIZE) -- size = KMALLOC_MAX_SIZE; -- buf = kmalloc(size, GFP_KERNEL); -- if (!buf) -- return -ENOMEM; -- -- res = single_open(file, show_stat, NULL); -- if (!res) { -- m = file->private_data; -- m->buf = buf; -- m->size = ksize(buf); -- } else -- kfree(buf); -- return res; -+ return single_open_size(file, show_stat, NULL, size); - } - - static const struct file_operations proc_stat_operations = { diff --git a/queue-3.15/series b/queue-3.15/series index b9d8382f5cb..a54a771d21f 100644 --- a/queue-3.15/series +++ b/queue-3.15/series @@ -91,7 +91,6 @@ ext4-fix-buffer-double-free-in-ext4_alloc_branch.patch ext4-fix-hole-punching-for-files-with-indirect-blocks.patch mm-page_alloc-fix-cma-area-initialisation-when-pageblock-max_order.patch zram-revalidate-disk-after-capacity-change.patch -proc-stat-convert-to-single_open_size.patch kvm-x86-increase-the-number-of-fixed-mtrr-regs-to-10.patch kvm-x86-preserve-the-high-32-bits-of-the-pat-register.patch kvm-fix-wrong-address-when-writing-hyper-v-tsc-page.patch