[kernel] r15907 - in dists/sid/linux-2.6/debian: . patches/features/all/openvz
Maximilian Attems
maks at alioth.debian.org
Thu Jun 24 12:55:48 UTC 2010
Author: maks
Date: Thu Jun 24 12:55:38 2010
New Revision: 15907
Log:
update openvz patch
fixes several oopses on checkpoint, migration and networking.
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog Thu Jun 24 00:52:00 2010 (r15906)
+++ dists/sid/linux-2.6/debian/changelog Thu Jun 24 12:55:38 2010 (r15907)
@@ -72,6 +72,9 @@
bridge.
* Disable ISDN4Linux drivers.
+ [ maximilian attems]
+ * Update openvz patch to 5fd638726a69.
+
-- dann frazier <dannf at debian.org> Tue, 01 Jun 2010 09:23:57 -0600
linux-2.6 (2.6.32-15) unstable; urgency=low
Modified: dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch Thu Jun 24 00:52:00 2010 (r15906)
+++ dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch Thu Jun 24 12:55:38 2010 (r15907)
@@ -1,3 +1,72 @@
+commit 5fd638726a6999e334e5e2c0635a03a447adc0d1
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date: Thu Jun 17 20:45:46 2010 +0400
+
+ OpenVZ kernel 2.6.32-budarin released
+
+ Named after Nikolai Mikhailovich Budarin - a Russian cosmonaut
+
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit 25ded1908b24b122325003fe56afa5bc78511aad
+Merge: 7e99ed1 c5f1e1a
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date: Thu Jun 17 20:40:20 2010 +0400
+
+ Merged linux-2.6.32.15
+
+ Conflicts:
+
+ Makefile
+
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit 7e99ed1bc34b60ed42eb2008edbb4f98684edb0a
+Author: Stanislav Kinsbursky <skinsbursky at openvz.org>
+Date: Thu Jun 17 20:25:43 2010 +0400
+
+ CPT: Replace legacy net statistics with netns one
+
+ http://bugzilla.openvz.org/show_bug.cgi?id=1543
+
+ Signed-off-by: Stanislav Kinsbursky <skinsbursky at openvz.org>
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit ad21fa5e96fc66a63364f210aebf4f4f95345ee4
+Author: Stanislav Kinsbursky <skinsbursky at openvz.org>
+Date: Thu Jun 17 20:24:21 2010 +0400
+
+ NET: register net sysfs kobject inside container
+
+ Adding of net kobject was supressed if network namespace is not
+ "init_net". Check for "init_net" is removed.
+
+ http://bugzilla.openvz.org/show_bug.cgi?id=1534
+
+ Signed-off-by: Stanislav Kinsbursky <skinsbursky at openvz.org>
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit 9783d9e288e8ca754cabf77e7eb68099a75a5292
+Author: Andrey Vagin <avagin at openvz.org>
+Date: Fri Jun 11 19:48:34 2010 +0400
+
+ cpt: fix refcounting of tty and pid on setting tty to process
+
+ http://bugzilla.openvz.org/show_bug.cgi?id=1544
+
+ Signed-off-by: Andrey Vagin <avagin at openvz.org>
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit b2fecd288e7d0457df18e57f11685e007cd09ad6
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date: Fri Jun 11 18:36:51 2010 +0400
+
+ mm: Fix oops in do_wp_page
+
+ http://bugzilla.openvz.org/show_bug.cgi?id=1541
+
+ Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
commit e7399c239fadcc813adcf4f947b00ec199d6a11b
Author: Pavel Emelyanov <xemul at openvz.org>
Date: Thu May 27 20:07:25 2010 +0400
@@ -6251,14 +6320,14 @@
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
-index 47866f8..7503318 100644
+index 36fead3..674349f 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,7 @@ VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 32
EXTRAVERSION =
-+VZVERSION = belyayev
++VZVERSION = budarin
NAME = Man-Eating Seals of Antiquity
# *DOCUMENTATION*
@@ -35479,10 +35548,10 @@
static inline void get_uts_ns(struct uts_namespace *ns)
diff --git a/include/linux/ve.h b/include/linux/ve.h
new file mode 100644
-index 0000000..e0e045a
+index 0000000..e473727
--- /dev/null
+++ b/include/linux/ve.h
-@@ -0,0 +1,367 @@
+@@ -0,0 +1,359 @@
+/*
+ * include/linux/ve.h
+ *
@@ -35724,14 +35793,6 @@
+ struct ve_ipt_recent *_ipt_recent;
+ struct ve_xt_hashlimit *_xt_hashlimit;
+#endif /* CONFIG_VE_IPTABLES */
-+
-+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-+ struct ipstats_mib *_ipv6_statistics[2];
-+ struct icmpv6_mib *_icmpv6_statistics[2];
-+ struct icmpv6msg_mib *_icmpv6msg_statistics[2];
-+ struct udp_mib *_udp_stats_in6[2];
-+ struct udp_mib *_udplite_stats_in6[2];
-+#endif
+#endif
+ wait_queue_head_t *_log_wait;
+ unsigned *_log_start;
@@ -51828,7 +51889,7 @@
+extern struct vm_operations_struct special_mapping_vmops;
diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c
new file mode 100644
-index 0000000..4e183ba
+index 0000000..473a294
--- /dev/null
+++ b/kernel/cpt/cpt_net.c
@@ -0,0 +1,652 @@
@@ -52451,11 +52512,11 @@
+ cpt_dump_snmp_stat(ctx, (void **)&net->mib.icmpmsg_statistics,
+ ICMPMSG_MIB_MAX);
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-+ cpt_dump_snmp_stat(ctx, (void **)&ve->_ipv6_statistics,
++ cpt_dump_snmp_stat(ctx, (void **)&net->mib.ipv6_statistics,
+ IPSTATS_MIB_MAX);
-+ cpt_dump_snmp_stat(ctx, (void **)&ve->_udp_stats_in6,
++ cpt_dump_snmp_stat(ctx, (void **)&net->mib.udp_stats_in6,
+ UDP_MIB_MAX);
-+ cpt_dump_snmp_stat(ctx, (void **)&ve->_icmpv6_statistics,
++ cpt_dump_snmp_stat(ctx, (void **)&net->mib.icmpv6_statistics,
+ ICMP6_MIB_MAX);
+#else
+ cpt_dump_snmp_stub(ctx);
@@ -61037,7 +61098,7 @@
+}
diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c
new file mode 100644
-index 0000000..4c8d482
+index 0000000..5da7a8c
--- /dev/null
+++ b/kernel/cpt/rst_net.c
@@ -0,0 +1,745 @@
@@ -61752,15 +61813,15 @@
+ if (err <= 0)
+ goto out;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-+ err = rst_restore_snmp_stat(ctx, (void **)&ve->_ipv6_statistics,
++ err = rst_restore_snmp_stat(ctx, (void **)&net->mib.ipv6_statistics,
+ IPSTATS_MIB_MAX, &sec, endsec);
+ if (err <= 0)
+ goto out;
-+ err = rst_restore_snmp_stat(ctx, (void **)&ve->_udp_stats_in6,
++ err = rst_restore_snmp_stat(ctx, (void **)&net->mib.udp_stats_in6,
+ UDP_MIB_MAX, &sec, endsec);
+ if (err <= 0)
+ goto out;
-+ err = rst_restore_snmp_stat(ctx, (void **)&ve->_icmpv6_statistics,
++ err = rst_restore_snmp_stat(ctx, (void **)&net->mib.icmpv6_statistics,
+ ICMP6_MIB_MAX, &sec, endsec);
+#endif
+ if (err == 1)
@@ -62376,10 +62437,10 @@
+module_exit(exit_rst);
diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c
new file mode 100644
-index 0000000..000e0b9
+index 0000000..ffed431
--- /dev/null
+++ b/kernel/cpt/rst_process.c
-@@ -0,0 +1,1661 @@
+@@ -0,0 +1,1663 @@
+/*
+ *
+ * kernel/cpt/rst_process.c
@@ -62795,8 +62856,10 @@
+ struct tty_struct *tty = obj->o_obj;
+ if (!tty->session || tty->session ==
+ task_session(current)) {
-+ tty->session = task_session(current);
-+ current->signal->tty = tty;
++ put_pid(tty->session);
++ tty->session = get_pid(task_session(current));
++ tty_kref_put(current->signal->tty);
++ current->signal->tty = tty_kref_get(tty);
+ } else {
+ wprintk_ctx("tty session mismatch\n");
+ }
@@ -69423,7 +69486,7 @@
/**
* kthread_stop - stop a thread created by kthread_create().
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
-index f672d51..bc200db 100644
+index 9af5672..99c3c9b 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -3742,7 +3742,7 @@ retry:
@@ -69445,7 +69508,7 @@
printk("\n");
printk("=============================================\n\n");
diff --git a/kernel/module.c b/kernel/module.c
-index a4aae35..6d7a625 100644
+index dfa33e8..48a2edc 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2915,6 +2915,8 @@ static char *module_flags(struct module *mod, char *buf)
@@ -76275,7 +76338,7 @@
if (!task_early_kill(tsk))
diff --git a/mm/memory.c b/mm/memory.c
-index 4e59455..220dc95 100644
+index 4e59455..c5108b1 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -42,6 +42,9 @@
@@ -76546,15 +76609,16 @@
old_page = vm_normal_page(vma, address, orig_pte);
if (!old_page) {
-@@ -2100,6 +2158,7 @@ reuse:
+@@ -2100,6 +2158,8 @@ reuse:
flush_cache_page(vma, address, pte_pfn(orig_pte));
entry = pte_mkyoung(orig_pte);
entry = maybe_mkwrite(pte_mkdirty(entry), vma);
-+ ClearPageCheckpointed(old_page);
++ if (old_page)
++ ClearPageCheckpointed(old_page);
if (ptep_set_access_flags(vma, address, page_table, entry,1))
update_mmu_cache(vma, address, entry);
ret |= VM_FAULT_WRITE;
-@@ -2113,6 +2172,9 @@ reuse:
+@@ -2113,6 +2173,9 @@ reuse:
gotten:
pte_unmap_unlock(page_table, ptl);
@@ -76564,7 +76628,7 @@
if (unlikely(anon_vma_prepare(vma)))
goto oom;
-@@ -2147,12 +2209,15 @@ gotten:
+@@ -2147,12 +2210,15 @@ gotten:
page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
if (likely(pte_same(*page_table, orig_pte))) {
if (old_page) {
@@ -76581,7 +76645,7 @@
flush_cache_page(vma, address, pte_pfn(orig_pte));
entry = mk_pte(new_page, vma->vm_page_prot);
entry = maybe_mkwrite(pte_mkdirty(entry), vma);
-@@ -2164,6 +2229,7 @@ gotten:
+@@ -2164,6 +2230,7 @@ gotten:
*/
ptep_clear_flush(vma, address, page_table);
page_add_new_anon_rmap(new_page, vma, address);
@@ -76589,7 +76653,7 @@
/*
* We call the notify macro here because, when using secondary
* mmu page tables (such as kvm shadow page tables), we want the
-@@ -2207,6 +2273,7 @@ gotten:
+@@ -2207,6 +2274,7 @@ gotten:
page_cache_release(new_page);
if (old_page)
page_cache_release(old_page);
@@ -76597,7 +76661,7 @@
unlock:
pte_unmap_unlock(page_table, ptl);
if (dirty_page) {
-@@ -2246,6 +2313,8 @@ unlock:
+@@ -2246,6 +2314,8 @@ unlock:
oom_free_new:
page_cache_release(new_page);
oom:
@@ -76606,7 +76670,7 @@
if (old_page) {
if (page_mkwrite) {
unlock_page(old_page);
-@@ -2502,10 +2571,16 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2502,10 +2572,16 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
pte_t pte;
struct mem_cgroup *ptr = NULL;
int ret = 0;
@@ -76624,7 +76688,7 @@
entry = pte_to_swp_entry(orig_pte);
if (unlikely(non_swap_entry(entry))) {
if (is_migration_entry(entry)) {
-@@ -2580,6 +2655,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2580,6 +2656,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
*/
inc_mm_counter(mm, anon_rss);
@@ -76632,7 +76696,7 @@
pte = mk_pte(page, vma->vm_page_prot);
if ((flags & FAULT_FLAG_WRITE) && reuse_swap_page(page)) {
pte = maybe_mkwrite(pte_mkdirty(pte), vma);
-@@ -2588,11 +2664,14 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2588,11 +2665,14 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
flush_icache_page(vma, page);
set_pte_at(mm, address, page_table, pte);
page_add_anon_rmap(page, vma, address);
@@ -76648,7 +76712,7 @@
try_to_free_swap(page);
unlock_page(page);
-@@ -2608,6 +2687,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2608,6 +2688,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
unlock:
pte_unmap_unlock(page_table, ptl);
out:
@@ -76660,7 +76724,7 @@
return ret;
out_nomap:
mem_cgroup_cancel_charge_swapin(ptr);
-@@ -2615,6 +2699,7 @@ out_nomap:
+@@ -2615,6 +2700,7 @@ out_nomap:
out_page:
unlock_page(page);
out_release:
@@ -76668,7 +76732,7 @@
page_cache_release(page);
return ret;
}
-@@ -2631,6 +2716,7 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2631,6 +2717,7 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
struct page *page;
spinlock_t *ptl;
pte_t entry;
@@ -76676,7 +76740,7 @@
if (!(flags & FAULT_FLAG_WRITE)) {
entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
-@@ -2645,6 +2731,9 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2645,6 +2732,9 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
/* Allocate our own private page. */
pte_unmap(page_table);
@@ -76686,7 +76750,7 @@
if (unlikely(anon_vma_prepare(vma)))
goto oom;
page = alloc_zeroed_user_highpage_movable(vma, address);
-@@ -2665,12 +2754,15 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2665,12 +2755,15 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
inc_mm_counter(mm, anon_rss);
page_add_new_anon_rmap(page, vma, address);
@@ -76702,7 +76766,7 @@
pte_unmap_unlock(page_table, ptl);
return 0;
release:
-@@ -2680,6 +2772,8 @@ release:
+@@ -2680,6 +2773,8 @@ release:
oom_free_page:
page_cache_release(page);
oom:
@@ -76711,7 +76775,7 @@
return VM_FAULT_OOM;
}
-@@ -2707,6 +2801,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2707,6 +2802,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
int anon = 0;
int charged = 0;
struct page *dirty_page = NULL;
@@ -76719,7 +76783,7 @@
struct vm_fault vmf;
int ret;
int page_mkwrite = 0;
-@@ -2716,9 +2811,13 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2716,9 +2812,13 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
vmf.flags = flags;
vmf.page = NULL;
@@ -76734,7 +76798,7 @@
if (unlikely(PageHWPoison(vmf.page))) {
if (ret & VM_FAULT_LOCKED)
-@@ -2812,6 +2911,8 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2812,6 +2912,8 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
*/
/* Only go through if we didn't race with anybody else... */
if (likely(pte_same(*page_table, orig_pte))) {
@@ -76743,7 +76807,7 @@
flush_icache_page(vma, page);
entry = mk_pte(page, vma->vm_page_prot);
if (flags & FAULT_FLAG_WRITE)
-@@ -2828,6 +2929,25 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2828,6 +2930,25 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
}
}
set_pte_at(mm, address, page_table, entry);
@@ -76769,7 +76833,7 @@
/* no need to invalidate: a not-present page won't be cached */
update_mmu_cache(vma, address, entry);
-@@ -2867,6 +2987,9 @@ out:
+@@ -2867,6 +2988,9 @@ out:
page_cache_release(vmf.page);
}
@@ -76779,7 +76843,7 @@
return ret;
unwritable_page:
-@@ -2994,6 +3117,27 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2994,6 +3118,27 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
pmd_t *pmd;
pte_t *pte;
@@ -76807,7 +76871,7 @@
__set_current_state(TASK_RUNNING);
count_vm_event(PGFAULT);
-@@ -3038,6 +3182,8 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
+@@ -3038,6 +3183,8 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
}
#endif /* __PAGETABLE_PUD_FOLDED */
@@ -76816,7 +76880,7 @@
#ifndef __PAGETABLE_PMD_FOLDED
/*
* Allocate page middle directory.
-@@ -3068,6 +3214,8 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
+@@ -3068,6 +3215,8 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
}
#endif /* __PAGETABLE_PMD_FOLDED */
@@ -76825,7 +76889,7 @@
int make_pages_present(unsigned long addr, unsigned long end)
{
int ret, len, write;
-@@ -3087,6 +3235,8 @@ int make_pages_present(unsigned long addr, unsigned long end)
+@@ -3087,6 +3236,8 @@ int make_pages_present(unsigned long addr, unsigned long end)
return ret == len ? 0 : -EFAULT;
}
@@ -81668,7 +81732,7 @@
dev_put(dev);
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
-index d5617d4..e98ae9c 100644
+index d5617d4..c70f2a2 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -268,6 +268,27 @@ static struct device_attribute net_class_attributes[] = {
@@ -81731,7 +81795,17 @@
dev->platform_data = net;
dev->groups = groups;
-@@ -534,7 +562,15 @@ void netdev_initialize_kobject(struct net_device *net)
+@@ -509,9 +537,6 @@ int netdev_register_kobject(struct net_device *net)
+ #endif
+ #endif /* CONFIG_SYSFS */
+
+- if (dev_net(net) != &init_net)
+- return 0;
+-
+ return device_add(dev);
+ }
+
+@@ -534,7 +559,15 @@ void netdev_initialize_kobject(struct net_device *net)
device_initialize(device);
}
More information about the Kernel-svn-changes
mailing list