diff options
author | Peter Volkov <pva@gentoo.org> | 2011-04-01 18:19:43 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2011-04-01 18:19:43 +0000 |
commit | 12c5cf16931a890861fc86d26cdede964a1ceeb2 (patch) | |
tree | d86f8a4775d2e6cd24ea768770f111f89d313840 /sys-kernel/openvz-sources | |
parent | ppc64 stable wrt #324031, #361617 (diff) | |
download | gentoo-2-12c5cf16931a890861fc86d26cdede964a1ceeb2.tar.gz gentoo-2-12c5cf16931a890861fc86d26cdede964a1ceeb2.tar.bz2 gentoo-2-12c5cf16931a890861fc86d26cdede964a1ceeb2.zip |
Version bump RHEL5 (2.6.18) kernel. Stabilize 2.6.32, bug #198632 and #360623. Drop old.
(Portage version: 2.1.9.45/cvs/Linux x86_64)
Diffstat (limited to 'sys-kernel/openvz-sources')
15 files changed, 28 insertions, 714 deletions
diff --git a/sys-kernel/openvz-sources/ChangeLog b/sys-kernel/openvz-sources/ChangeLog index c814c9dd7b9e..22421fa8660a 100644 --- a/sys-kernel/openvz-sources/ChangeLog +++ b/sys-kernel/openvz-sources/ChangeLog @@ -1,6 +1,28 @@ # ChangeLog for sys-kernel/openvz-sources # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/ChangeLog,v 1.163 2011/03/09 13:38:59 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/ChangeLog,v 1.164 2011/04/01 18:19:43 pva Exp $ + +*openvz-sources-2.6.18.028.085.3 (01 Apr 2011) + + 01 Apr 2011; Peter Volkov <pva@gentoo.org> + -files/openvz-sources-2.6.18.028.068.3-build-fix.patch, + -openvz-sources-2.6.18.028.079.1.ebuild, + +openvz-sources-2.6.18.028.085.3.ebuild, + -openvz-sources-2.6.32.10.1-r1.ebuild, + -files/openvz-sources-2.6.32.10.1-PPPoED-NULL-dereference.patch, + -files/openvz-sources-2.6.32.10.1-VDSO_sysenter_return.patch, + -files/openvz-sources-2.6.32.10.1-VE_IP_NAT-bit.patch, + -files/openvz-sources-2.6.32.10.1-build-fix.patch, + -files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials.patch + , + -files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials-build + .patch, -files/openvz-sources-2.6.32.10.1-openreq-leak.patch, + -files/openvz-sources-2.6.32.10.1-orphans.patch, + -files/openvz-sources-2.6.32.10.1-ppp-CAP_VE_NET_ADMIN.patch, + -files/openvz-sources-2.6.32.10.1-ppp-reconnect.patch, + openvz-sources-2.6.32.11.1.ebuild: + Version bump RHEL5 (2.6.18) kernel. Stabilize 2.6.32, bug #198632 and + #360623. Drop old. *openvz-sources-2.6.32.11.1 (09 Mar 2011) *openvz-sources-2.6.18.028.081.1 (09 Mar 2011) diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.068.3-build-fix.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.068.3-build-fix.patch deleted file mode 100644 index ce1e7305f4ad..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.068.3-build-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -x86,amd_detect_cmp: Dont forget to retrieve cpu number - -In non-NUMA case we have to retrieve cpu number in a sake -of HT compatibility. - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> ---- - arch/x86_64/kernel/setup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: linux-2.6.18-ovz/arch/x86_64/kernel/setup.c -===================================================================== ---- linux-2.6.18-ovz.orig/arch/x86_64/kernel/setup.c -+++ linux-2.6.18-ovz/arch/x86_64/kernel/setup.c -@@ -857,8 +857,8 @@ static void __init amd_detect_cmp(struct - { - #ifdef CONFIG_SMP - unsigned bits; --#ifdef CONFIG_NUMA - int cpu = smp_processor_id(); -+#ifdef CONFIG_NUMA - int node = 0; - unsigned apicid = hard_smp_processor_id(); - #endif diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-PPPoED-NULL-dereference.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-PPPoED-NULL-dereference.patch deleted file mode 100644 index b92e8f9a3eb9..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-PPPoED-NULL-dereference.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@openvz.org> -Date: Wed, 8 Dec 2010 13:28:42 +0000 (+0300) -Subject: net: pppoe - Fix NULL dereference on PPPoED frames -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=09c67a4c47f8dfeac50c3122550e8d8163b2d2d3 - -net: pppoe - Fix NULL dereference on PPPoED frames - -In case if VE configured without VE_FEATURE_PPP -PPPoED frame causes NULL dereference. In real there is -a chance to receive a malformed packet (ie packets with -PPPoE type) which would cause null dereference as well. -Fix both cases. - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c -index 326958b..9bf064c 100644 ---- a/drivers/net/pppoe.c -+++ b/drivers/net/pppoe.c -@@ -453,6 +453,8 @@ static int pppoe_rcv(struct sk_buff *skb, struct net_device *dev, - goto drop; - - pn = pppoe_pernet(dev_net(dev)); -+ if (!pn) /* no VE_FEATURE_PPP */ -+ goto drop; - - /* Note that get_item does a sock_hold(), so sk_pppox(po) - * is known to be safe. -@@ -495,6 +497,9 @@ static int pppoe_disc_rcv(struct sk_buff *skb, struct net_device *dev, - goto abort; - - pn = pppoe_pernet(dev_net(dev)); -+ if (!pn) /* no VE_FEATURE_PPP */ -+ goto abort; -+ - po = get_item(pn, ph->sid, eth_hdr(skb)->h_source, dev->ifindex); - if (po) { - struct sock *sk = sk_pppox(po); diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VDSO_sysenter_return.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VDSO_sysenter_return.patch deleted file mode 100644 index 384fc755e69f..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VDSO_sysenter_return.patch +++ /dev/null @@ -1,83 +0,0 @@ -http://bugzilla.openvz.org/show_bug.cgi?id=1586 -http://bugs.gentoo.org/show_bug.cgi?id=329083 - - - Add tricks for hrtimer C/R code - - More vDSO32 conditional compilation on dump/restore - kernel/cpt/cpt_dump.c | 4 ++-- - kernel/cpt/cpt_mm.h | 2 +- - kernel/cpt/rst_mm.c | 2 ++ - kernel/cpt/rst_undump.c | 6 +++--- - 4 files changed, 8 insertions(+), 6 deletions(-) ---- linux-2.6-openvz/kernel/cpt/cpt_dump.c -+++ linux-2.6-openvz/kernel/cpt/cpt_dump.c -@@ -843,7 +843,7 @@ static int cpt_dump_utsname(cpt_context_ - return 0; - } - --#ifndef CONFIG_IA64 -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - static int cpt_dump_vsyscall(cpt_context_t *ctx) - { - struct cpt_page_block *pgb = cpt_get_buf(ctx); -@@ -947,7 +947,7 @@ int cpt_dump(struct cpt_context *ctx) - if (!err) - err = cpt_dump_utsname(ctx); - --#ifndef CONFIG_IA64 -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - if (!err) - err = cpt_dump_vsyscall(ctx); - #endif ---- linux-2.6-openvz/kernel/cpt/cpt_mm.h -+++ linux-2.6-openvz/kernel/cpt/cpt_mm.h -@@ -27,7 +27,7 @@ extern int arch_setup_additional_pages(s - unsigned long map_address); - #endif - --#ifdef CONFIG_X86 -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - extern struct page *vdso32_pages[1]; - #define vsyscall_addr page_address(vdso32_pages[0]) - #endif ---- linux-2.6-openvz/kernel/cpt/rst_mm.c -+++ linux-2.6-openvz/kernel/cpt/rst_mm.c -@@ -982,8 +982,10 @@ static int do_rst_mm(struct cpt_mm_image - #ifndef CONFIG_IA64 - if (ctx->image_version >= CPT_VERSION_9) { - mm->context.vdso = cpt_ptr_import(vmi->cpt_vdso); -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - current_thread_info()->sysenter_return = - VDSO32_SYMBOL(mm->context.vdso, SYSENTER_RETURN); -+#endif - } - #endif - ---- linux-2.6-openvz/kernel/cpt/rst_undump.c -+++ linux-2.6-openvz/kernel/cpt/rst_undump.c -@@ -397,7 +397,7 @@ static int hook(void *arg) - - rb = &task_thread_info(current)->restart_block; - rb->fn = hrtimer_nanosleep_restart; --#ifdef CONFIG_COMPAT -+#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT) - if (ti->cpt_restart.fn == CPT_RBL_COMPAT_NANOSLEEP) - rb->fn = compat_nanosleep_restart; - #endif -@@ -797,7 +797,7 @@ static int vps_rst_restore_tree(struct c - return err; - } - --#ifndef CONFIG_IA64 -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - int rst_read_vdso(struct cpt_context *ctx) - { - int err; -@@ -871,7 +871,7 @@ int vps_rst_undump(struct cpt_context *c - #ifdef CONFIG_VZ_CHECKPOINT_LAZY - err = rst_setup_pagein(ctx); - #endif --#ifndef CONFIG_IA64 -+#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT) - if (err == 0) - err = rst_read_vdso(ctx); - #endif diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VE_IP_NAT-bit.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VE_IP_NAT-bit.patch deleted file mode 100644 index e3f5aadcb90f..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-VE_IP_NAT-bit.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@openvz.org> -Date: Wed, 8 Dec 2010 14:12:39 +0000 (+0300) -Subject: net, iptables: Restore setting VE_IP_NAT bit in running modules mask -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=04e9b2f949ad9c2ded425caecc17341d5300f2b5 - -net, iptables: Restore setting VE_IP_NAT bit in running modules mask - -During migration to new iptables management code the setting of -VE_IP_NAT bit was lost. In the former code it set at module symbol -resolving time (which was cut off eventually). Restore this -functionality by setting this bit if VE is allowed to. - -http://bugzilla.openvz.org/show_bug.cgi?id=1603 - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c -index 2c77ffe..96f07a4 100644 ---- a/net/ipv4/netfilter/nf_nat_core.c -+++ b/net/ipv4/netfilter/nf_nat_core.c -@@ -682,6 +682,9 @@ nfnetlink_parse_nat_setup(struct nf_conn *ct, - - static int __net_init nf_nat_net_init(struct net *net) - { -+ if (net_ipt_permitted(net, VE_IP_NAT)) -+ net_ipt_module_set(net, VE_IP_NAT); -+ - /* Leave them the same for the moment. */ - net->ipv4.nat_htable_size = net->ct.htable_size; - net->ipv4.nat_bysource = nf_ct_alloc_hashtable(&net->ipv4.nat_htable_size, diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-build-fix.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-build-fix.patch deleted file mode 100644 index d18259471b16..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-build-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Pavel Emelaynov <xemul@openvz.org> -Date: Wed, 8 Dec 2010 14:28:28 +0000 (+0300) -Subject: proc: Compilation fix (lost headers) -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=9cfc84d64b73f2bbf752b1df68aa190313407afb - -proc: Compilation fix (lost headers) - -http://bugzilla.openvz.org/show_bug.cgi?id=1688 - -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/fs/proc/inode.c b/fs/proc/inode.c -index 3693efa..20fcc37 100644 ---- a/fs/proc/inode.c -+++ b/fs/proc/inode.c -@@ -18,6 +18,8 @@ - #include <linux/module.h> - #include <linux/smp_lock.h> - #include <linux/sysctl.h> -+#include <linux/sched.h> -+#include <linux/ve.h> - - #include <asm/system.h> - #include <asm/uaccess.h> diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials-build.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials-build.patch deleted file mode 100644 index 3d46d25ca13d..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials-build.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@openvz.org> -Date: Fri, 10 Dec 2010 15:38:51 +0000 (+0300) -Subject: C/R: Restore variable name missed -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=eb1f3c62b3fc652945dd108dde30cde8be7a6867 - -C/R: Restore variable name missed - -In patch 66d247cf6dd51c6725cef2d01285398fe667ef6f -we've lost a part of variable name during the merge -which causes kernel to not build anymore. Fix it -by restoring the name we need. - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c -index 75d591e..6f3963a 100644 ---- a/kernel/cpt/rst_files.c -+++ b/kernel/cpt/rst_files.c -@@ -873,7 +873,7 @@ struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx) - err = rst_get_object(CPT_OBJ_FILE, pos, &fi, ctx); - if (err < 0) - goto err_out; -- fixup_file_flags(file, rst_cred, &fi, 0, pos, ctx); -+ fixup_file_flags(file, rst_cred_origin, &fi, 0, pos, ctx); - } - get_file(file); - rst_creds_restore_current(); -@@ -1036,7 +1036,7 @@ open_file: - } - map_file: - if (!IS_ERR(file)) { -- fixup_file_flags(file, rst_cred, &fi, was_dentry_open, pos, ctx); -+ fixup_file_flags(file, rst_cred_origin, &fi, was_dentry_open, pos, ctx); - - if (S_ISFIFO(fi.cpt_i_mode) && !was_dentry_open) { - err = fixup_pipe_data(file, &fi, ctx); diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials.patch deleted file mode 100644 index d9563a78864d..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-file-restore-init_task-credentials.patch +++ /dev/null @@ -1,117 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@openvz.org> -Date: Wed, 8 Dec 2010 14:10:42 +0000 (+0300) -Subject: cpt: Use init_task credentials for file restoring procedure -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=66d247cf6dd51c6725cef2d01285398fe667ef6f - -cpt: Use init_task credentials for file restoring procedure - -We need highest credentials for file restoring procedure otherwise -we might hit the situation where credentials for restoring thread -is not high enough (happens with programs changing their uids). - -http://bugzilla.openvz.org/show_bug.cgi?id=1603 - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c -index a84e3d3..75d591e 100644 ---- a/kernel/cpt/rst_files.c -+++ b/kernel/cpt/rst_files.c -@@ -616,12 +616,11 @@ out: - return err; - } - --static int fixup_file_flags(struct file *file, struct cpt_file_image *fi, -+static int fixup_file_flags(struct file *file, const struct cred *cred, -+ struct cpt_file_image *fi, - int was_dentry_open, loff_t pos, - cpt_context_t *ctx) - { -- const struct cred *cred = current_cred() /* should be valid already */; -- - if (fi->cpt_pos != file->f_pos) { - int err = -ESPIPE; - if (file->f_op->llseek) -@@ -824,6 +823,34 @@ static struct file *open_signalfd(struct cpt_file_image *fi, int flags, struct c - } - #endif - -+/* -+ * It may happen that a process which created a file -+ * had changed its UID after that (keeping file opened/referenced -+ * with write permissions for 'own' only) as a result we might -+ * be unable to read it at restore time due to credentials -+ * mismatch, to break this tie we temporary take 'init_task' credentials -+ * and as only the file gets read into the memory we restore original -+ * credentials back -+ * -+ * Same time if between credentials rise/restore you need -+ * the former credentials (for fixups or whatever) -- -+ * use rst_cred_origin for that -+ */ -+static const struct cred *rst_cred_origin; -+ -+void rst_creds_rise_current(void) -+{ -+ struct task_struct *tsk = &init_task; -+ BUG_ON(rst_cred_origin); -+ rst_cred_origin = override_creds(tsk->cred); -+} -+ -+void rst_creds_restore_current(void) -+{ -+ revert_creds(rst_cred_origin); -+ rst_cred_origin = NULL; -+} -+ - struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx) - { - int err; -@@ -836,6 +863,8 @@ struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx) - struct proc_dir_entry *proc_dead_file; - int flags; - -+ rst_creds_rise_current(); -+ - obj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, pos, ctx); - if (obj) { - file = obj->o_obj; -@@ -844,9 +873,10 @@ struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx) - err = rst_get_object(CPT_OBJ_FILE, pos, &fi, ctx); - if (err < 0) - goto err_out; -- fixup_file_flags(file, &fi, 0, pos, ctx); -+ fixup_file_flags(file, rst_cred, &fi, 0, pos, ctx); - } - get_file(file); -+ rst_creds_restore_current(); - return file; - } - -@@ -1006,7 +1036,7 @@ open_file: - } - map_file: - if (!IS_ERR(file)) { -- fixup_file_flags(file, &fi, was_dentry_open, pos, ctx); -+ fixup_file_flags(file, rst_cred, &fi, was_dentry_open, pos, ctx); - - if (S_ISFIFO(fi.cpt_i_mode) && !was_dentry_open) { - err = fixup_pipe_data(file, &fi, ctx); -@@ -1059,6 +1089,7 @@ map_file: - out: - if (name) - rst_put_name(name, ctx); -+ rst_creds_restore_current(); - return file; - - err_put: -@@ -1067,6 +1098,7 @@ err_put: - err_out: - if (name) - rst_put_name(name, ctx); -+ rst_creds_restore_current(); - return ERR_PTR(err); - } - diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-openreq-leak.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-openreq-leak.patch deleted file mode 100644 index 1e5ee56f1ffd..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-openreq-leak.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Pavel Emelyanov <xemul@openvz.org> -Date: Wed, 8 Dec 2010 13:29:54 +0000 (+0300) -Subject: netns: Don't leak others' openreq-s in proc -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=6aa0026d95af8b9a83113a3907c328eaa492333a - -netns: Don't leak others' openreq-s in proc - -The /proc/net/tcp leaks openreq sockets from other namespaces. -http://bugzilla.openvz.org/show_bug.cgi?id=1705 - -Signed-off-by: Pavel Emelyanov <xemul@parallels.com> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c -index e141833..e360965 100644 ---- a/net/ipv4/tcp_ipv4.c -+++ b/net/ipv4/tcp_ipv4.c -@@ -1964,7 +1964,9 @@ get_req: - } - get_sk: - sk_nulls_for_each_from(sk, node) { -- if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) { -+ if (!net_eq(sock_net(sk), net)) -+ continue; -+ if (sk->sk_family == st->family) { - cur = sk; - goto out; - } diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-orphans.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-orphans.patch deleted file mode 100644 index ea9893faa0dc..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-orphans.patch +++ /dev/null @@ -1,107 +0,0 @@ -From: Pavel Emelyanov <xemul@openvz.org> -Date: Sat, 6 Nov 2010 14:02:43 +0000 (+0300) -Subject: ubc: Fix orphan count checks after merge -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=e5db932edffe86ddc4a8f9cdfc6e267ed887570c - -ubc: Fix orphan count checks after merge - -After merging -stable the orphans checking function started checking -the wrong counter. - -http://bugzilla.openvz.org/show_bug.cgi?id=1693 - -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/include/bc/sock_orphan.h b/include/bc/sock_orphan.h -index c5b2412..8f829c3 100644 ---- a/include/bc/sock_orphan.h -+++ b/include/bc/sock_orphan.h -@@ -19,9 +19,13 @@ - - static inline struct percpu_counter *__ub_get_orphan_count_ptr(struct sock *sk) - { -- if (sock_has_ubc(sk)) -- return &sock_bc(sk)->ub->ub_orphan_count; -- return sk->sk_prot->orphan_count; -+ if (sock_has_ubc(sk)) { -+ struct user_beancounter *ub; -+ -+ ub = top_beancounter(sock_bc(sk)->ub); -+ return &ub->ub_orphan_count; -+ } else -+ return sk->sk_prot->orphan_count; - } - - static inline void ub_inc_orphan_count(struct sock *sk) -@@ -39,15 +43,7 @@ static inline int ub_get_orphan_count(struct sock *sk) - return percpu_counter_sum_positive(__ub_get_orphan_count_ptr(sk)); - } - --extern int __ub_too_many_orphans(struct sock *sk, int count); --static inline int ub_too_many_orphans(struct sock *sk, int shift) --{ --#ifdef CONFIG_BEANCOUNTERS -- if (__ub_too_many_orphans(sk, shift)) -- return 1; --#endif -- return tcp_too_many_orphans(sk, shift); --} -+extern int ub_too_many_orphans(struct sock *sk, int count); - - #include <bc/kmem.h> - -diff --git a/include/net/tcp.h b/include/net/tcp.h -index 6fa5f0d..ac5f07d 100644 ---- a/include/net/tcp.h -+++ b/include/net/tcp.h -@@ -272,9 +272,9 @@ static inline int between(__u32 seq1, __u32 seq2, __u32 seq3) - return seq3 - seq2 >= seq1 - seq2; - } - --static inline bool tcp_too_many_orphans(struct sock *sk, int shift) -+static inline bool tcp_too_many_orphans(struct sock *sk, -+ struct percpu_counter *ocp, int shift) - { -- struct percpu_counter *ocp = sk->sk_prot->orphan_count; - int orphans = percpu_counter_read_positive(ocp); - - if (orphans << shift > sysctl_tcp_max_orphans) { -diff --git a/kernel/bc/net.c b/kernel/bc/net.c -index 2866ebb..427fc42 100644 ---- a/kernel/bc/net.c -+++ b/kernel/bc/net.c -@@ -102,17 +102,18 @@ EXPORT_SYMBOL(skb_charge_fullsize); - static int ub_sock_makewreserv_locked(struct sock *sk, - int bufid, unsigned long size); - --int __ub_too_many_orphans(struct sock *sk, int shift) -+int ub_too_many_orphans(struct sock *sk, int shift) - { -- struct user_beancounter *ub; - struct percpu_counter *cnt; - -+ cnt = sk->sk_prot->orphan_count; - if (sock_has_ubc(sk)) { -- int orphans, limit; -+ struct user_beancounter *ub; -+ unsigned int orphans, limit; - - ub = top_beancounter(sock_bc(sk)->ub); -- limit = ((int)ub->ub_parms[UB_NUMTCPSOCK].barrier) >> 2; -- cnt = __ub_get_orphan_count_ptr(sk); -+ limit = ub->ub_parms[UB_NUMTCPSOCK].barrier >> 2; -+ cnt = &ub->ub_orphan_count; - - orphans = percpu_counter_read_positive(cnt); - if ((orphans << shift) >= limit) -@@ -122,7 +123,8 @@ int __ub_too_many_orphans(struct sock *sk, int shift) - if ((orphans << shift) >= limit) - return 1; - } -- return 0; -+ -+ return tcp_too_many_orphans(sk, cnt, shift); - } - - /* diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-CAP_VE_NET_ADMIN.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-CAP_VE_NET_ADMIN.patch deleted file mode 100644 index d5fd3feb1f3f..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-CAP_VE_NET_ADMIN.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@gmail.com> -Date: Sun, 7 Nov 2010 18:01:45 +0000 (+0300) -Subject: ppp: Restore virtualization v3 -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=aaf7d79ecd409182c101fa22a977b11fa95122f1 - -ppp: Restore virtualization v3 - -net, ppp: ppp_open should check for CAP_VE_NET_ADMIN -http://bugzilla.openvz.org/show_bug.cgi?id=1663 - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c -index f8545d0..bece346 100644 ---- a/drivers/net/ppp_generic.c -+++ b/drivers/net/ppp_generic.c -@@ -369,7 +369,7 @@ static int ppp_open(struct inode *inode, struct file *file) - /* - * This could (should?) be enforced by the permissions on /dev/ppp. - */ -- if (!capable(CAP_NET_ADMIN)) -+ if (!capable(CAP_VE_NET_ADMIN)) - return -EPERM; - if (!net_generic(get_exec_env()->ve_netns, ppp_net_id)) /* no VE_FEATURE_PPP */ - return -EACCES; diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-reconnect.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-reconnect.patch deleted file mode 100644 index 87f9b6218d72..000000000000 --- a/sys-kernel/openvz-sources/files/openvz-sources-2.6.32.10.1-ppp-reconnect.patch +++ /dev/null @@ -1,120 +0,0 @@ -From: Cyrill Gorcunov <gorcunov@gmail.com> -Date: Wed, 8 Dec 2010 13:35:42 +0000 (+0300) -Subject: net, ppp: Report correct error code if unit allocation failed v7 -X-Git-Url: http://git.openvz.org/?p=linux-2.6.32-openvz;a=commitdiff_plain;h=6bb1ed0512b651893df1794a494e5eeb713e3d02 - -net, ppp: Report correct error code if unit allocation failed v7 - -Allocating unit from ird might return various error codes -not EAGAIN one, so it should not be changed to anything else -but returned precisely. - -v2: Do not free interface unit until it's freed, otherwise - sysfs will find that device is still present and allocation - of new interace will fail. -v3: Close a small race window in unit release procedure -v5: Be ready for PADO if PPP feature disabled. -v6: Correct freeing of PPP units in generic level. -v7: Put units if device is being unregistered. - -bcc70bb3aeae7c3d035881d41055685f08a2b745 -http://bugzilla.openvz.org/show_bug.cgi?id=1697 - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Signed-off-by: Pavel Emelyanov <xemul@openvz.org> ---- - -diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c -index bece346..091f629 100644 ---- a/drivers/net/ppp_generic.c -+++ b/drivers/net/ppp_generic.c -@@ -2579,16 +2579,16 @@ ppp_create_interface(struct net *net, int unit, int *retp) - */ - dev_net_set(dev, net); - -- ret = -EEXIST; - mutex_lock(&pn->all_ppp_mutex); - - if (unit < 0) { - unit = unit_get(&pn->units_idr, ppp); - if (unit < 0) { -- *retp = unit; -+ ret = unit; - goto out2; - } - } else { -+ ret = -EEXIST; - if (unit_find(&pn->units_idr, unit)) - goto out2; /* unit already exists */ - /* -@@ -2663,10 +2663,10 @@ static void ppp_shutdown_interface(struct ppp *ppp) - ppp->closing = 1; - ppp_unlock(ppp); - unregister_netdev(ppp->dev); -+ unit_put(&pn->units_idr, ppp->file.index); - } else - ppp_unlock(ppp); - -- unit_put(&pn->units_idr, ppp->file.index); - ppp->file.dead = 1; - ppp->owner = NULL; - wake_up_interruptible(&ppp->file.rwait); -@@ -2854,8 +2854,7 @@ static void __exit ppp_cleanup(void) - * by holding all_ppp_mutex - */ - --/* associate pointer with specified number */ --static int unit_set(struct idr *p, void *ptr, int n) -+static int __unit_alloc(struct idr *p, void *ptr, int n) - { - int unit, err; - -@@ -2866,10 +2865,24 @@ again: - } - - err = idr_get_new_above(p, ptr, n, &unit); -- if (err == -EAGAIN) -- goto again; -+ if (err < 0) { -+ if (err == -EAGAIN) -+ goto again; -+ return err; -+ } -+ -+ return unit; -+} -+ -+/* associate pointer with specified number */ -+static int unit_set(struct idr *p, void *ptr, int n) -+{ -+ int unit; - -- if (unit != n) { -+ unit = __unit_alloc(p, ptr, n); -+ if (unit < 0) -+ return unit; -+ else if (unit != n) { - idr_remove(p, unit); - return -EINVAL; - } -@@ -2880,19 +2893,7 @@ again: - /* get new free unit number and associate pointer with it */ - static int unit_get(struct idr *p, void *ptr) - { -- int unit, err; -- --again: -- if (!idr_pre_get(p, GFP_KERNEL)) { -- printk(KERN_ERR "PPP: No free memory for idr\n"); -- return -ENOMEM; -- } -- -- err = idr_get_new_above(p, ptr, 0, &unit); -- if (err == -EAGAIN) -- goto again; -- -- return unit; -+ return __unit_alloc(p, ptr, 0); - } - - /* put unit number back to a pool */ diff --git a/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.079.1.ebuild b/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.085.3.ebuild index 4fb9aba7be9a..baa2d4284e6b 100644 --- a/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.079.1.ebuild +++ b/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.085.3.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.079.1.ebuild,v 1.1 2010/12/19 15:25:55 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.18.028.085.3.ebuild,v 1.1 2011/04/01 18:19:43 pva Exp $ inherit versionator @@ -23,7 +23,7 @@ detect_version KEYWORDS="~amd64 ~ia64 ~ppc64 ~sparc ~x86" IUSE="" -PATCHV="194.26.1.el5" +PATCHV="238.5.1.el5" DESCRIPTION="Full sources including OpenVZ patchset for the 2.6.18 kernel tree" HOMEPAGE="http://www.openvz.org" SRC_URI="${KERNEL_URI} ${ARCH_URI} diff --git a/sys-kernel/openvz-sources/openvz-sources-2.6.32.10.1-r1.ebuild b/sys-kernel/openvz-sources/openvz-sources-2.6.32.10.1-r1.ebuild deleted file mode 100644 index ca944a41357b..000000000000 --- a/sys-kernel/openvz-sources/openvz-sources-2.6.32.10.1-r1.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.32.10.1-r1.ebuild,v 1.1 2010/12/19 16:01:59 pva Exp $ - -inherit versionator - -# Upstream uses string to version their releases. To make portage version -# comparisment working we have to use numbers instead of strings, that is 4th -# component of our version. So we have aivazovsky - 1, briullov - 2 and so on. -# Keep this string on top since we have to modify it each new release. -OVZ_CODENAME="dzhanibekov" -OVZ_CODENAME_SUBRELEASE=$(get_version_component_range 5) - -OVZ_KV="${OVZ_CODENAME}.${OVZ_CODENAME_SUBRELEASE}" - -ETYPE="sources" - -CKV=$(get_version_component_range 1-3) -OKV=${OKV:-${CKV}} -EXTRAVERSION=-${PN/-*}-${OVZ_KV} -KV_FULL=${CKV}${EXTRAVERSION} -if [[ ${PR} != r0 ]]; then - KV_FULL+=-${PR} - EXTRAVERSION+=-${PR} -fi - -# ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} should succeed. -KV_MAJOR=$(get_version_component_range 1 ${OKV}) -KV_MINOR=$(get_version_component_range 2 ${OKV}) -KV_PATCH=$(get_version_component_range 3 ${OKV}) - -KERNEL_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/linux-${OKV}.tar.bz2" - -inherit kernel-2 -detect_version - -SLOT=${CKV}-${OVZ_KV} -if [[ ${PR} != r0 ]]; then - SLOT+=-${PR} -fi - -KEYWORDS="~amd64 ~ppc64 ~sparc ~x86" -IUSE="" - -DESCRIPTION="Kernel sources with OpenVZ patchset" -HOMEPAGE="http://www.openvz.org" -SRC_URI="${KERNEL_URI} ${ARCH_URI} - http://download.openvz.org/kernel/branches/${CKV}/${CKV}-${OVZ_KV}/patches/patch-${OVZ_KV}-combined.gz" - -UNIPATCH_STRICTORDER=1 -UNIPATCH_LIST="${DISTDIR}/patch-${OVZ_KV}-combined.gz -${FILESDIR}/${P}-cpt_process.c-build.patch -${FILESDIR}/${P}-orphans.patch -${FILESDIR}/${P}-VDSO_sysenter_return.patch -${FILESDIR}/${P}-build-fix.patch -${FILESDIR}/${P}-file-restore-init_task-credentials.patch -${FILESDIR}/${P}-file-restore-init_task-credentials-build.patch -${FILESDIR}/${P}-openreq-leak.patch -${FILESDIR}/${P}-ppp-CAP_VE_NET_ADMIN.patch -${FILESDIR}/${P}-PPPoED-NULL-dereference.patch -${FILESDIR}/${P}-ppp-reconnect.patch -${FILESDIR}/${P}-VE_IP_NAT-bit.patch -" - -K_EXTRAEINFO="For more information about this kernel take a look at: -http://wiki.openvz.org/Download/kernel/${CKV}/${CKV}-${OVZ_KV}" diff --git a/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild b/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild index 618d39497505..d277bbf2a0b0 100644 --- a/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild +++ b/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild,v 1.1 2011/03/09 13:38:59 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.32.11.1.ebuild,v 1.2 2011/04/01 18:19:43 pva Exp $ inherit versionator @@ -39,7 +39,7 @@ if [[ ${PR} != r0 ]]; then SLOT+=-${PR} fi -KEYWORDS="~amd64 ~ppc64 ~sparc ~x86" +KEYWORDS="amd64 ~ppc64 ~sparc x86" IUSE="" DESCRIPTION="Kernel sources with OpenVZ patchset" |