Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2012-01-27 15:19:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source", Maintainer is "kernel-maintainers@forge.provo.novell.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2012-01-09 12:55:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2012-01-27 15:21:00.000000000 +0100
@@ -1,0 +2,65 @@
+Wed Jan 25 11:51:08 CET 2012 - dkukawka@suse.de
+
+- fix NULL pointer dereference in DSS2 VENC sysfs debug attr on OMAP4.
+- commit 2206a5c
+
+-------------------------------------------------------------------
+Wed Jan 25 09:38:46 CET 2012 - mmarek@suse.cz
+
+- proc: clean up and fix /proc/<pid>/mem handling (bnc#742279,
+ CVE-2012-0056).
+- commit 4fb112d
+
+-------------------------------------------------------------------
+Tue Jan 17 15:51:33 CET 2012 - trenn@suse.de
+
+- Delete patches.fixes/intel_idle_add_flush_tlb_param.patch.
+- Delete patches.fixes/intel_idle_lapic_param.patch.
+- commit e18e852
+
+-------------------------------------------------------------------
+Tue Jan 17 01:03:28 CET 2012 - agraf@suse.de
+
+- KVM: PPC: Add HPT preallocator.
+- KVM: PPC: Convert RMA allocation into generic code.
+- commit a6da6a5
+
+-------------------------------------------------------------------
+Fri Jan 13 19:59:54 CET 2012 - agraf@suse.de
+
+- ARM: Update config files: Enable highmem everywhere
+- commit 4522c1c
+
+-------------------------------------------------------------------
+Fri Jan 13 17:43:09 CET 2012 - tiwai@suse.de
+
+- Refresh patches.suse/SUSE-bootsplash.
+- add a proper support for Xen fb (bnc#739020);
+- fix the bootsplash-verbose switch race (bnc#734213)
+- commit 6f3d77f
+
+-------------------------------------------------------------------
+Wed Jan 11 14:36:44 CET 2012 - jbeulich@novell.com
+
+- patches.suse/stack-unwind: Fix more 2.6.29 merge problems plus a glue code problem.
+- commit 9166360
+
+-------------------------------------------------------------------
+Mon Jan 9 14:17:00 CET 2012 - mmarek@suse.cz
+
+- Set CONFIG_LOCALVERSION for armv7l/u8500.
+- commit dde56d0
+
+-------------------------------------------------------------------
+Fri Jan 6 18:29:35 CET 2012 - awafaa@opensuse.org
+
+- add support for ST-Ericsson Nova based SoCs
+- commit 06d2b6e
+
+-------------------------------------------------------------------
+Fri Jan 6 17:57:44 CET 2012 - jbeulich@novell.com
+
+- Update Xen patches to 3.2-final and c/s 1140.
+- commit 917dd7e
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-imx51.changes: same change
kernel-omap2plus.changes: same change
kernel-pae.changes: same change
kernel-ppc64.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-tegra.changes: same change
kernel-trace.changes: same change
New Changes file:
--- /dev/null 2010-08-26 16:28:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-u8500.changes 2012-01-27 15:21:01.000000000 +0100
@@ -0,0 +1,24938 @@
+-------------------------------------------------------------------
+Wed Jan 25 11:51:08 CET 2012 - dkukawka@suse.de
+
+- fix NULL pointer dereference in DSS2 VENC sysfs debug attr on OMAP4.
+- commit 2206a5c
+
+-------------------------------------------------------------------
+Wed Jan 25 09:38:46 CET 2012 - mmarek@suse.cz
+
+- proc: clean up and fix /proc/<pid>/mem handling (bnc#742279,
+ CVE-2012-0056).
+- commit 4fb112d
+
+-------------------------------------------------------------------
+Tue Jan 17 15:51:33 CET 2012 - trenn@suse.de
+
+- Delete patches.fixes/intel_idle_add_flush_tlb_param.patch.
+- Delete patches.fixes/intel_idle_lapic_param.patch.
+- commit e18e852
+
+-------------------------------------------------------------------
+Tue Jan 17 01:03:28 CET 2012 - agraf@suse.de
+
+- KVM: PPC: Add HPT preallocator.
+- KVM: PPC: Convert RMA allocation into generic code.
+- commit a6da6a5
+
+-------------------------------------------------------------------
+Fri Jan 13 19:59:54 CET 2012 - agraf@suse.de
+
+- ARM: Update config files: Enable highmem everywhere
+- commit 4522c1c
+
+-------------------------------------------------------------------
+Fri Jan 13 17:43:09 CET 2012 - tiwai@suse.de
+
+- Refresh patches.suse/SUSE-bootsplash.
+- add a proper support for Xen fb (bnc#739020);
+- fix the bootsplash-verbose switch race (bnc#734213)
+- commit 6f3d77f
+
+-------------------------------------------------------------------
+Wed Jan 11 14:36:44 CET 2012 - jbeulich@novell.com
+
+- patches.suse/stack-unwind: Fix more 2.6.29 merge problems plus a glue code problem.
+- commit 9166360
+
+-------------------------------------------------------------------
+Mon Jan 9 14:17:00 CET 2012 - mmarek@suse.cz
+
+- Set CONFIG_LOCALVERSION for armv7l/u8500.
+- commit dde56d0
+
+-------------------------------------------------------------------
+Fri Jan 6 18:29:35 CET 2012 - awafaa@opensuse.org
+
+- add support for ST-Ericsson Nova based SoCs
+- commit 06d2b6e
+
+-------------------------------------------------------------------
+Fri Jan 6 17:57:44 CET 2012 - jbeulich@novell.com
+
+- Update Xen patches to 3.2-final and c/s 1140.
+- commit 917dd7e
+
+-------------------------------------------------------------------
+Thu Jan 5 16:15:39 CET 2012 - jeffm@suse.com
+
+- Update to 3.2-final.
+- commit 778e265
+
+-------------------------------------------------------------------
+Mon Jan 2 15:35:31 CET 2012 - jeffm@suse.com
+
+- Updated to 3.2-rc7.
+- commit f458508
+
+-------------------------------------------------------------------
+Thu Dec 22 16:05:54 CET 2011 - jeffm@suse.com
+
+- Update config files.
+- CONFIG_X86_INTEL_MID -> CONFIG_X86_WANT_INTEL_MID
+- commit c4246bf
+
+-------------------------------------------------------------------
+Wed Dec 21 14:38:42 CET 2011 - jbeulich@novell.com
+
+- Update Xen patches to 3.2-rc6 and c/s 1133.
+- kexec: properly handle pCPU hotplug.
+- x86: pCPU handling.
+- commit cbe54a1
+
+-------------------------------------------------------------------
+Tue Dec 20 16:35:33 CET 2011 - jeffm@suse.com
+
+- Update to 3.2-rc6.
+ - Eliminated 1 patch.
+- commit d5a489e
+
+-------------------------------------------------------------------
+Tue Dec 20 11:34:14 CET 2011 - trenn@suse.de
+
+- These should all be mainline in some form:
+- Delete
+ patches.arch/implement_stop_machine_from_offline_cpu.patch.
+- Delete patches.arch/kill-__stop_machine.patch.
+- Delete patches.arch/reorganize_stop_cpus.patch.
+- Delete patches.arch/use_stop_machine_for_mtrr_rendezvous.patch.
+- commit 78eb159
+
+-------------------------------------------------------------------
+Sun Dec 18 07:38:42 CET 2011 - aj@suse.de
+
+- rpm/kernel-source.rpmlintrc: The hidden files are fine, silence rpmlint.
+- commit a7813dd
+
+-------------------------------------------------------------------
+Fri Dec 16 15:37:51 CET 2011 - aj@suse.de
+
+- rpm/kernel-binary.spec.in: Add provides and make most obsoletes versioned.
+ This silences rpmlint warnings.
+- commit e3023c7
+
+-------------------------------------------------------------------
+Wed Dec 14 13:51:41 CET 2011 - mmarek@suse.cz
+
+- rpm/kernel-source.spec.in, rpm/mkspec: Fix tarball URL for -rcX and
+ do not generate any URL for linux-next and vanilla snapshots.
+- commit 1548daf
+
+-------------------------------------------------------------------
+Tue Dec 13 23:00:02 CET 2011 - mmarek@suse.cz
+
+- rpm/kernel-source.spec.in, rpm/mkspec: Fix linux tarball URL
+- commit 5453f99
+
+-------------------------------------------------------------------
+Tue Dec 13 14:33:56 CET 2011 - agraf@suse.de
+
+- doc/config-options.changes: add CONFIG_DEBUG_STACKOVERFLOW change
+- commit 42de6ff
+
+-------------------------------------------------------------------
+Tue Dec 13 11:42:47 CET 2011 - agraf@suse.de
+
+- PPC: Update config files: disable CONFIG_DEBUG_STACKOVERFLOW
+- commit 4d462dd
+
+-------------------------------------------------------------------
+Mon Dec 12 16:06:06 CET 2011 - aj@suse.de
+
+- Silence missing defattr warning.
+- Silence missing defattr warning.
+- commit e7e3743
+
+-------------------------------------------------------------------
+Mon Dec 12 16:04:58 CET 2011 - aj@suse.de
+
+- Silence warning about dangling symlink and vdsos
+- Silence warning about dangling symlink and vdsos
+- commit 701c5c7
+
+-------------------------------------------------------------------
+Fri Dec 9 22:28:04 CET 2011 - aj@suse.de
+
+- No self-obsoletions.
+- No self-obsoletions.
+- commit 1d2e747
+
+-------------------------------------------------------------------
+Fri Dec 9 20:58:23 CET 2011 - aj@suse.de
+
+- Do not show rpmlint warnings.
+- Do not show rpmlint warnings.
+- commit bb45b41
+
+-------------------------------------------------------------------
+Fri Dec 9 17:04:44 CET 2011 - aj@suse.de
+
+- Use versioned provides/obsoletes.
+- Use versioned provides/obsoletes.
+- commit cf4f296
+
+-------------------------------------------------------------------
+Fri Dec 9 13:28:02 CET 2011 - aj@suse.de
+
+- Adjust kernel-source.rpmlintrc for Linux 3.x
+- Adjust kernel-source.rpmlintrc for Linux 3.x
+- commit bc1534e
+
+-------------------------------------------------------------------
+Thu Dec 8 14:52:21 CET 2011 - mmarek@suse.cz
+
+- rpm/kernel-binary.spec.in: Do not package the vmlinux image in the devel
+ package.
+- commit 02bb976
+
++++ 24741 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-u8500.changes
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-vanilla.changes 2012-01-09 12:55:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-vanilla.changes 2012-01-27 15:21:01.000000000 +0100
@@ -1,0 +2,65 @@
+Wed Jan 25 11:51:08 CET 2012 - dkukawka@suse.de
+
+- fix NULL pointer dereference in DSS2 VENC sysfs debug attr on OMAP4.
+- commit 2206a5c
+
+-------------------------------------------------------------------
+Wed Jan 25 09:38:46 CET 2012 - mmarek@suse.cz
+
+- proc: clean up and fix /proc/<pid>/mem handling (bnc#742279,
+ CVE-2012-0056).
+- commit 4fb112d
+
+-------------------------------------------------------------------
+Tue Jan 17 15:51:33 CET 2012 - trenn@suse.de
+
+- Delete patches.fixes/intel_idle_add_flush_tlb_param.patch.
+- Delete patches.fixes/intel_idle_lapic_param.patch.
+- commit e18e852
+
+-------------------------------------------------------------------
+Tue Jan 17 01:03:28 CET 2012 - agraf@suse.de
+
+- KVM: PPC: Add HPT preallocator.
+- KVM: PPC: Convert RMA allocation into generic code.
+- commit a6da6a5
+
+-------------------------------------------------------------------
+Fri Jan 13 19:59:54 CET 2012 - agraf@suse.de
+
+- ARM: Update config files: Enable highmem everywhere
+- commit 4522c1c
+
+-------------------------------------------------------------------
+Fri Jan 13 17:43:09 CET 2012 - tiwai@suse.de
+
+- Refresh patches.suse/SUSE-bootsplash.
+- add a proper support for Xen fb (bnc#739020);
+- fix the bootsplash-verbose switch race (bnc#734213)
+- commit 6f3d77f
+
+-------------------------------------------------------------------
+Wed Jan 11 14:36:44 CET 2012 - jbeulich@novell.com
+
+- patches.suse/stack-unwind: Fix more 2.6.29 merge problems plus a glue code problem.
+- commit 9166360
+
+-------------------------------------------------------------------
+Mon Jan 9 14:17:00 CET 2012 - mmarek@suse.cz
+
+- Set CONFIG_LOCALVERSION for armv7l/u8500.
+- commit dde56d0
+
+-------------------------------------------------------------------
+Fri Jan 6 18:29:35 CET 2012 - awafaa@opensuse.org
+
+- add support for ST-Ericsson Nova based SoCs
+- commit 06d2b6e
+
+-------------------------------------------------------------------
+Fri Jan 6 17:57:44 CET 2012 - jbeulich@novell.com
+
+- Update Xen patches to 3.2-final and c/s 1140.
+- commit 917dd7e
+
+-------------------------------------------------------------------
kernel-xen.changes: same change
New:
----
kernel-u8500.changes
kernel-u8500.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
kernel-default.spec: same change
kernel-desktop.spec: same change
kernel-docs.spec: same change
kernel-ec2.spec: same change
kernel-imx51.spec: same change
kernel-omap2plus.spec: same change
kernel-pae.spec: same change
kernel-ppc64.spec: same change
kernel-s390.spec: same change
kernel-source.spec: same change
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.KLbdiw/_old 2012-01-27 15:21:09.000000000 +0100
+++ /var/tmp/diff_new_pack.KLbdiw/_new 2012-01-27 15:21:09.000000000 +0100
@@ -59,6 +59,9 @@
%ifarch armv7l
Requires: kernel-tegra-devel = %version-%source_rel
%endif
+%ifarch armv7l
+Requires: kernel-u8500-devel = %version-%source_rel
+%endif
%ifarch %ix86 x86_64
Requires: kernel-xen-devel = %version-%source_rel
%endif
kernel-trace.spec: same change
++++++ kernel-u8500.spec ++++++
++++ 924 lines (skipped)
kernel-xen.spec: same change
++++++ config.conf ++++++
--- /var/tmp/diff_new_pack.KLbdiw/_old 2012-01-27 15:21:09.000000000 +0100
+++ /var/tmp/diff_new_pack.KLbdiw/_new 2012-01-27 15:21:09.000000000 +0100
@@ -45,6 +45,7 @@
+armv7l armv7l/imx51
+armv7l armv7l/omap2plus
+armv7l armv7l/tegra
++armv7l armv7l/u8500
# SLES
# identical to ppc64 flavor, all KMP packages need a kernel-default
++++++ config.tar.bz2 ++++++
++++ 2609 lines of diff (skipped)
++++++ package-descriptions ++++++
--- /var/tmp/diff_new_pack.KLbdiw/_old 2012-01-27 15:21:09.000000000 +0100
+++ /var/tmp/diff_new_pack.KLbdiw/_new 2012-01-27 15:21:09.000000000 +0100
@@ -139,3 +139,9 @@
The standard kernel for Nvidia's Tegra SoC, as found in
devices like the TrimSlice.
+
+=== kernel-u8500 ===
+Kernel for ST-Ericsson's Nova SoC
+
+The standard kernel for ST-Ericsson's Nova SoC, as found in
+devices like the Snowball.
++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/ppc-kvm-add-hpt-preallocator.patch new/patches.arch/ppc-kvm-add-hpt-preallocator.patch
--- old/patches.arch/ppc-kvm-add-hpt-preallocator.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/ppc-kvm-add-hpt-preallocator.patch 2012-01-17 01:03:52.000000000 +0100
@@ -0,0 +1,156 @@
+From 153a0d716731a91ff75536a0a3af0703f36a1090 Mon Sep 17 00:00:00 2001
+From: Alexander Graf
+Date: Mon, 16 Jan 2012 19:12:11 +0100
+Subject: [PATCH] KVM: PPC: Add HPT preallocator
+Patch-mainline: not yet
+
+We're currently allocating 16MB of linear memory on demand when creating
+a guest. That does work some times, but finding 16MB of linear memory
+available in the system at runtime is definitely not a given.
+
+So let's add another command line option similar to the RMA preallocator,
+that we can use to keep a pool of page tables around. Now, when a guest
+gets created it has a pretty low chance of receiving an OOM.
+
+Signed-off-by: Alexander Graf
+---
+ arch/powerpc/include/asm/kvm_host.h | 1 +
+ arch/powerpc/include/asm/kvm_ppc.h | 2 +
+ arch/powerpc/kvm/book3s_64_mmu_hv.c | 20 ++++++++++++++++-
+ arch/powerpc/kvm/book3s_hv_builtin.c | 39 +++++++++++++++++++++++++++++++++-
+ 4 files changed, 60 insertions(+), 2 deletions(-)
+
+Index: linux-3.2-master/arch/powerpc/include/asm/kvm_host.h
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/include/asm/kvm_host.h
++++ linux-3.2-master/arch/powerpc/include/asm/kvm_host.h
+@@ -187,6 +187,7 @@ struct kvm_arch {
+ struct list_head spapr_tce_tables;
+ unsigned short last_vcpu[NR_CPUS];
+ struct kvmppc_vcore *vcores[KVM_MAX_VCORES];
++ struct kvmppc_linear_info *hpt_li;
+ #endif /* CONFIG_KVM_BOOK3S_64_HV */
+ };
+
+Index: linux-3.2-master/arch/powerpc/include/asm/kvm_ppc.h
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/include/asm/kvm_ppc.h
++++ linux-3.2-master/arch/powerpc/include/asm/kvm_ppc.h
+@@ -129,6 +129,8 @@ extern long kvm_vm_ioctl_allocate_rma(st
+ struct kvm_allocate_rma *rma);
+ extern struct kvmppc_linear_info *kvm_alloc_rma(void);
+ extern void kvm_release_rma(struct kvmppc_linear_info *ri);
++extern struct kvmppc_linear_info *kvm_alloc_hpt(void);
++extern void kvm_release_hpt(struct kvmppc_linear_info *li);
+ extern int kvmppc_core_init_vm(struct kvm *kvm);
+ extern void kvmppc_core_destroy_vm(struct kvm *kvm);
+ extern int kvmppc_core_prepare_memory_region(struct kvm *kvm,
+Index: linux-3.2-master/arch/powerpc/kvm/book3s_64_mmu_hv.c
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/kvm/book3s_64_mmu_hv.c
++++ linux-3.2-master/arch/powerpc/kvm/book3s_64_mmu_hv.c
+@@ -51,9 +51,21 @@ long kvmppc_alloc_hpt(struct kvm *kvm)
+ {
+ unsigned long hpt;
+ unsigned long lpid;
++ struct kvmppc_linear_info *li;
+
++ /* using preallocated memory */
++ li = kvm_alloc_hpt();
++ if (li) {
++ hpt = (ulong)li->base_virt;
++ kvm->arch.hpt_li = li;
++ memset(li->base_virt, 0, li->npages << PAGE_SHIFT);
++ goto has_hpt;
++ }
++
++ /* using dynamic memory */
+ hpt = __get_free_pages(GFP_KERNEL|__GFP_ZERO|__GFP_REPEAT|__GFP_NOWARN,
+ HPT_ORDER - PAGE_SHIFT);
++has_hpt:
+ if (!hpt) {
+ pr_err("kvm_alloc_hpt: Couldn't alloc HPT\n");
+ return -ENOMEM;
+@@ -80,6 +92,10 @@ void kvmppc_free_hpt(struct kvm *kvm)
+ {
+ clear_bit(kvm->arch.lpid, lpid_inuse);
+ free_pages(kvm->arch.hpt_virt, HPT_ORDER - PAGE_SHIFT);
++ if (kvm->arch.hpt_li)
++ kvm_release_hpt(kvm->arch.hpt_li);
++ else
++ free_pages(kvm->arch.hpt_virt, HPT_ORDER - PAGE_SHIFT);
+ }
+
+ void kvmppc_map_vrma(struct kvm *kvm, struct kvm_userspace_memory_region *mem)
+Index: linux-3.2-master/arch/powerpc/kvm/book3s_hv_builtin.c
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/kvm/book3s_hv_builtin.c
++++ linux-3.2-master/arch/powerpc/kvm/book3s_hv_builtin.c
+@@ -19,6 +19,8 @@
+ #include
+
+ #define KVM_LINEAR_RMA 0
++#define KVM_LINEAR_HPT 1
++#define HPT_ORDER 24
+
+ static void __init kvm_linear_init_one(ulong size, int count, int type);
+ static struct kvmppc_linear_info *kvm_alloc_linear(int type);
+@@ -97,6 +99,39 @@ void kvm_release_rma(struct kvmppc_linea
+ }
+ EXPORT_SYMBOL_GPL(kvm_release_rma);
+
++/*************** HPT *************/
++
++/*
++ * This maintains a list of big linear HPT tables that contain the GVA->HPA
++ * memory mappings. If we don't reserve those early on, we might not be able
++ * to get a big (usually 16MB) linear memory region from the kernel anymore.
++ */
++
++static unsigned long kvm_hpt_count;
++
++static int __init early_parse_hpt_count(char *p)
++{
++ if (!p)
++ return 1;
++
++ kvm_hpt_count = simple_strtoul(p, NULL, 0);
++
++ return 0;
++}
++early_param("kvm_hpt_count", early_parse_hpt_count);
++
++struct kvmppc_linear_info *kvm_alloc_hpt(void)
++{
++ return kvm_alloc_linear(KVM_LINEAR_HPT);
++}
++EXPORT_SYMBOL_GPL(kvm_alloc_hpt);
++
++void kvm_release_hpt(struct kvmppc_linear_info *li)
++{
++ kvm_release_linear(li);
++}
++EXPORT_SYMBOL_GPL(kvm_release_hpt);
++
+ /*************** generic *************/
+
+ static LIST_HEAD(free_linears);
+@@ -114,7 +149,7 @@ static void __init kvm_linear_init_one(u
+ if (!count)
+ return;
+
+- typestr = (type == KVM_LINEAR_RMA) ? "RMA" : "";
++ typestr = (type == KVM_LINEAR_RMA) ? "RMA" : "HPT";
+
+ npages = size >> PAGE_SHIFT;
+ linear_info = alloc_bootmem(count * sizeof(struct kvmppc_linear_info));
+@@ -172,6 +207,9 @@ static void kvm_release_linear(struct kv
+ */
+ void __init kvm_linear_init(void)
+ {
++ /* HPT */
++ kvm_linear_init_one(1 << HPT_ORDER, kvm_hpt_count, KVM_LINEAR_HPT);
++
+ /* RMA */
+ /* Only do this on PPC970 in HV mode */
+ if (!cpu_has_feature(CPU_FTR_HVMODE) ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/ppc-kvm-convert-rma-allocation.patch new/patches.arch/ppc-kvm-convert-rma-allocation.patch
--- old/patches.arch/ppc-kvm-convert-rma-allocation.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/ppc-kvm-convert-rma-allocation.patch 2012-01-17 01:03:52.000000000 +0100
@@ -0,0 +1,358 @@
+From f251c5de9aa311466ead60665173a601a68eb4b0 Mon Sep 17 00:00:00 2001
+From: Alexander Graf
+Date: Mon, 16 Jan 2012 16:50:10 +0100
+Subject: [PATCH] KVM: PPC: Convert RMA allocation into generic code
+Patch-mainline: not yet
+
+We have code to allocate big chunks of linear memory on bootup for later use.
+This code is currently used for RMA allocation, but can be useful beyond that
+extent.
+
+Make it generic so we can reuse it for other stuff later.
+
+Signed-off-by: Alexander Graf
+---
+ arch/powerpc/include/asm/kvm_host.h | 7 +-
+ arch/powerpc/include/asm/kvm_ppc.h | 8 +-
+ arch/powerpc/kernel/setup_64.c | 2 +-
+ arch/powerpc/kvm/book3s_hv.c | 8 +-
+ arch/powerpc/kvm/book3s_hv_builtin.c | 175 ++++++++++++++++++++--------------
+ 5 files changed, 118 insertions(+), 82 deletions(-)
+
+Index: linux-3.2-master/arch/powerpc/include/asm/kvm_host.h
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/include/asm/kvm_host.h
++++ linux-3.2-master/arch/powerpc/include/asm/kvm_host.h
+@@ -158,12 +158,13 @@ struct kvmppc_spapr_tce_table {
+ struct page *pages[0];
+ };
+
+-struct kvmppc_rma_info {
++struct kvmppc_linear_info {
+ void *base_virt;
+ unsigned long base_pfn;
+ unsigned long npages;
+ struct list_head list;
+- atomic_t use_count;
++ atomic_t use_count;
++ int type;
+ };
+
+ struct kvm_arch {
+@@ -182,7 +183,7 @@ struct kvm_arch {
+ int n_rma_pages;
+ unsigned long lpcr;
+ unsigned long rmor;
+- struct kvmppc_rma_info *rma;
++ struct kvmppc_linear_info *rma;
+ struct list_head spapr_tce_tables;
+ unsigned short last_vcpu[NR_CPUS];
+ struct kvmppc_vcore *vcores[KVM_MAX_VCORES];
+Index: linux-3.2-master/arch/powerpc/include/asm/kvm_ppc.h
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/include/asm/kvm_ppc.h
++++ linux-3.2-master/arch/powerpc/include/asm/kvm_ppc.h
+@@ -127,8 +127,8 @@ extern long kvm_vm_ioctl_create_spapr_tc
+ struct kvm_create_spapr_tce *args);
+ extern long kvm_vm_ioctl_allocate_rma(struct kvm *kvm,
+ struct kvm_allocate_rma *rma);
+-extern struct kvmppc_rma_info *kvm_alloc_rma(void);
+-extern void kvm_release_rma(struct kvmppc_rma_info *ri);
++extern struct kvmppc_linear_info *kvm_alloc_rma(void);
++extern void kvm_release_rma(struct kvmppc_linear_info *ri);
+ extern int kvmppc_core_init_vm(struct kvm *kvm);
+ extern void kvmppc_core_destroy_vm(struct kvm *kvm);
+ extern int kvmppc_core_prepare_memory_region(struct kvm *kvm,
+@@ -183,13 +183,13 @@ static inline void kvmppc_set_xics_phys(
+ paca[cpu].kvm_hstate.xics_phys = addr;
+ }
+
+-extern void kvm_rma_init(void);
++extern void kvm_linear_init(void);
+
+ #else
+ static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr)
+ {}
+
+-static inline void kvm_rma_init(void)
++static inline void kvm_linear_init(void)
+ {}
+ #endif
+
+Index: linux-3.2-master/arch/powerpc/kernel/setup_64.c
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/kernel/setup_64.c
++++ linux-3.2-master/arch/powerpc/kernel/setup_64.c
+@@ -588,7 +588,7 @@ void __init setup_arch(char **cmdline_p)
+ /* Initialize the MMU context management stuff */
+ mmu_context_init();
+
+- kvm_rma_init();
++ kvm_linear_init();
+
+ ppc64_boot_msg(0x15, "Setup Done");
+ }
+Index: linux-3.2-master/arch/powerpc/kvm/book3s_hv.c
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/kvm/book3s_hv.c
++++ linux-3.2-master/arch/powerpc/kvm/book3s_hv.c
+@@ -1001,7 +1001,7 @@ static inline int lpcr_rmls(unsigned lon
+
+ static int kvm_rma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ {
+- struct kvmppc_rma_info *ri = vma->vm_file->private_data;
++ struct kvmppc_linear_info *ri = vma->vm_file->private_data;
+ struct page *page;
+
+ if (vmf->pgoff >= ri->npages)
+@@ -1026,7 +1026,7 @@ static int kvm_rma_mmap(struct file *fil
+
+ static int kvm_rma_release(struct inode *inode, struct file *filp)
+ {
+- struct kvmppc_rma_info *ri = filp->private_data;
++ struct kvmppc_linear_info *ri = filp->private_data;
+
+ kvm_release_rma(ri);
+ return 0;
+@@ -1039,7 +1039,7 @@ static struct file_operations kvm_rma_fo
+
+ long kvm_vm_ioctl_allocate_rma(struct kvm *kvm, struct kvm_allocate_rma *ret)
+ {
+- struct kvmppc_rma_info *ri;
++ struct kvmppc_linear_info *ri;
+ long fd;
+
+ ri = kvm_alloc_rma();
+@@ -1077,7 +1077,7 @@ int kvmppc_core_prepare_memory_region(st
+ unsigned long pg_ix;
+ struct kvmppc_pginfo *pginfo;
+ unsigned long hva;
+- struct kvmppc_rma_info *ri = NULL;
++ struct kvmppc_linear_info *ri = NULL;
+ struct page *page;
+
+ /* For now, only allow 16MB pages */
+Index: linux-3.2-master/arch/powerpc/kvm/book3s_hv_builtin.c
+===================================================================
+--- linux-3.2-master.orig/arch/powerpc/kvm/book3s_hv_builtin.c
++++ linux-3.2-master/arch/powerpc/kvm/book3s_hv_builtin.c
+@@ -18,6 +18,14 @@
+ #include
+ #include
+
++#define KVM_LINEAR_RMA 0
++
++static void __init kvm_linear_init_one(ulong size, int count, int type);
++static struct kvmppc_linear_info *kvm_alloc_linear(int type);
++static void kvm_release_linear(struct kvmppc_linear_info *ri);
++
++/*************** RMA *************/
++
+ /*
+ * This maintains a list of RMAs (real mode areas) for KVM guests to use.
+ * Each RMA has to be physically contiguous and of a size that the
+@@ -29,32 +37,6 @@
+ static unsigned long kvm_rma_size = 64 << 20; /* 64MB */
+ static unsigned long kvm_rma_count;
+
+-static int __init early_parse_rma_size(char *p)
+-{
+- if (!p)
+- return 1;
+-
+- kvm_rma_size = memparse(p, &p);
+-
+- return 0;
+-}
+-early_param("kvm_rma_size", early_parse_rma_size);
+-
+-static int __init early_parse_rma_count(char *p)
+-{
+- if (!p)
+- return 1;
+-
+- kvm_rma_count = simple_strtoul(p, NULL, 0);
+-
+- return 0;
+-}
+-early_param("kvm_rma_count", early_parse_rma_count);
+-
+-static struct kvmppc_rma_info *rma_info;
+-static LIST_HEAD(free_rmas);
+-static DEFINE_SPINLOCK(rma_lock);
+-
+ /* Work out RMLS (real mode limit selector) field value for a given RMA size.
+ Assumes POWER7 or PPC970. */
+ static inline int lpcr_rmls(unsigned long rma_size)
+@@ -81,45 +63,73 @@ static inline int lpcr_rmls(unsigned lon
+ }
+ }
+
+-/*
+- * Called at boot time while the bootmem allocator is active,
+- * to allocate contiguous physical memory for the real memory
+- * areas for guests.
+- */
+-void kvm_rma_init(void)
++static int __init early_parse_rma_size(char *p)
++{
++ if (!p)
++ return 1;
++
++ kvm_rma_size = memparse(p, &p);
++
++ return 0;
++}
++early_param("kvm_rma_size", early_parse_rma_size);
++
++static int __init early_parse_rma_count(char *p)
++{
++ if (!p)
++ return 1;
++
++ kvm_rma_count = simple_strtoul(p, NULL, 0);
++
++ return 0;
++}
++early_param("kvm_rma_count", early_parse_rma_count);
++
++struct kvmppc_linear_info *kvm_alloc_rma(void)
++{
++ return kvm_alloc_linear(KVM_LINEAR_RMA);
++}
++EXPORT_SYMBOL_GPL(kvm_alloc_rma);
++
++void kvm_release_rma(struct kvmppc_linear_info *ri)
++{
++ kvm_release_linear(ri);
++}
++EXPORT_SYMBOL_GPL(kvm_release_rma);
++
++/*************** generic *************/
++
++static LIST_HEAD(free_linears);
++static DEFINE_SPINLOCK(linear_lock);
++
++static void __init kvm_linear_init_one(ulong size, int count, int type)
+ {
+ unsigned long i;
+ unsigned long j, npages;
+- void *rma;
++ void *linear;
+ struct page *pg;
++ const char *typestr;
++ struct kvmppc_linear_info *linear_info;
+
+- /* Only do this on PPC970 in HV mode */
+- if (!cpu_has_feature(CPU_FTR_HVMODE) ||
+- !cpu_has_feature(CPU_FTR_ARCH_201))
++ if (!count)
+ return;
+
+- if (!kvm_rma_size || !kvm_rma_count)
+- return;
++ typestr = (type == KVM_LINEAR_RMA) ? "RMA" : "";
+
+- /* Check that the requested size is one supported in hardware */
+- if (lpcr_rmls(kvm_rma_size) < 0) {
+- pr_err("RMA size of 0x%lx not supported\n", kvm_rma_size);
+- return;
+- }
++ npages = size >> PAGE_SHIFT;
++ linear_info = alloc_bootmem(count * sizeof(struct kvmppc_linear_info));
++ for (i = 0; i < count; ++i) {
++ linear = alloc_bootmem_align(size, size);
++ pr_info("Allocated KVM %s at %p (%ld MB)\n", typestr, linear,
++ size >> 20);
++ linear_info[i].base_virt = linear;
++ linear_info[i].base_pfn = __pa(linear) >> PAGE_SHIFT;
++ linear_info[i].npages = npages;
++ linear_info[i].type = type;
++ list_add_tail(&linear_info[i].list, &free_linears);
++ atomic_set(&linear_info[i].use_count, 0);
+
+- npages = kvm_rma_size >> PAGE_SHIFT;
+- rma_info = alloc_bootmem(kvm_rma_count * sizeof(struct kvmppc_rma_info));
+- for (i = 0; i < kvm_rma_count; ++i) {
+- rma = alloc_bootmem_align(kvm_rma_size, kvm_rma_size);
+- pr_info("Allocated KVM RMA at %p (%ld MB)\n", rma,
+- kvm_rma_size >> 20);
+- rma_info[i].base_virt = rma;
+- rma_info[i].base_pfn = __pa(rma) >> PAGE_SHIFT;
+- rma_info[i].npages = npages;
+- list_add_tail(&rma_info[i].list, &free_rmas);
+- atomic_set(&rma_info[i].use_count, 0);
+-
+- pg = pfn_to_page(rma_info[i].base_pfn);
++ pg = pfn_to_page(linear_info[i].base_pfn);
+ for (j = 0; j < npages; ++j) {
+ atomic_inc(&pg->_count);
+ ++pg;
+@@ -127,30 +137,55 @@ void kvm_rma_init(void)
+ }
+ }
+
+-struct kvmppc_rma_info *kvm_alloc_rma(void)
++static struct kvmppc_linear_info *kvm_alloc_linear(int type)
+ {
+- struct kvmppc_rma_info *ri;
++ struct kvmppc_linear_info *ri;
+
+ ri = NULL;
+- spin_lock(&rma_lock);
+- if (!list_empty(&free_rmas)) {
+- ri = list_first_entry(&free_rmas, struct kvmppc_rma_info, list);
++ spin_lock(&linear_lock);
++ list_for_each_entry(ri, &free_linears, list) {
++ if (ri->type != type)
++ continue;
++
+ list_del(&ri->list);
+ atomic_inc(&ri->use_count);
++ break;
+ }
+- spin_unlock(&rma_lock);
++ spin_unlock(&linear_lock);
+ return ri;
+ }
+-EXPORT_SYMBOL_GPL(kvm_alloc_rma);
+
+-void kvm_release_rma(struct kvmppc_rma_info *ri)
++static void kvm_release_linear(struct kvmppc_linear_info *ri)
+ {
+ if (atomic_dec_and_test(&ri->use_count)) {
+- spin_lock(&rma_lock);
+- list_add_tail(&ri->list, &free_rmas);
+- spin_unlock(&rma_lock);
++ spin_lock(&linear_lock);
++ list_add_tail(&ri->list, &free_linears);
++ spin_unlock(&linear_lock);
+
+ }
+ }
+-EXPORT_SYMBOL_GPL(kvm_release_rma);
+
++/*
++ * Called at boot time while the bootmem allocator is active,
++ * to allocate contiguous physical memory for the hash page
++ * tables for guests.
++ */
++void __init kvm_linear_init(void)
++{
++ /* RMA */
++ /* Only do this on PPC970 in HV mode */
++ if (!cpu_has_feature(CPU_FTR_HVMODE) ||
++ !cpu_has_feature(CPU_FTR_ARCH_201))
++ return;
++
++ if (!kvm_rma_size || !kvm_rma_count)
++ return;
++
++ /* Check that the requested size is one supported in hardware */
++ if (lpcr_rmls(kvm_rma_size) < 0) {
++ pr_err("RMA size of 0x%lx not supported\n", kvm_rma_size);
++ return;
++ }
++
++ kvm_linear_init_one(kvm_rma_size, kvm_rma_count, KVM_LINEAR_RMA);
++}
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-fix-NULL-pointer-dereference-in-DSS2-VENC-sysfs-debu.patch new/patches.fixes/0001-fix-NULL-pointer-dereference-in-DSS2-VENC-sysfs-debu.patch
--- old/patches.fixes/0001-fix-NULL-pointer-dereference-in-DSS2-VENC-sysfs-debu.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/0001-fix-NULL-pointer-dereference-in-DSS2-VENC-sysfs-debu.patch 2012-01-25 11:51:08.000000000 +0100
@@ -0,0 +1,38 @@
+From f454ab8c6abba5245a1a00c7e29dc4dc37292341 Mon Sep 17 00:00:00 2001
+From: Danny Kukawka
+Date: Tue, 24 Jan 2012 14:53:28 +0100
+Subject: [PATCH] fix NULL pointer dereference in DSS2 VENC sysfs debug attr on OMAP4
+Patch-mainline: Submitted linux-omap 25Jan2012
+
+Commit ba02fa37de80bea10d706f39f076dd848348320a disabled the
+venc driver registration on OMAP4. Since the driver never gets
+probed/initialised your get a dereferenceed NULL pointer if you
+try to get info from /sys/kernel/debug/omapdss/venc
+
+Return info message about disabled venc if venc_dump_regs() gets called.
+
+Signed-off-by: Danny Kukawka
+Signed-off-by: Danny Kukawka
+---
+ drivers/video/omap2/dss/venc.c | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
+index b3e9f90..82865be 100644
+--- a/drivers/video/omap2/dss/venc.c
++++ b/drivers/video/omap2/dss/venc.c
+@@ -699,6 +699,11 @@ void venc_dump_regs(struct seq_file *s)
+ {
+ #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, venc_read_reg(r))
+
++ if (cpu_is_omap44xx()) {
++ seq_printf(s, "VENC currently disabled on OMAP44xx\n");
++ return;
++ }
++
+ if (venc_runtime_get())
+ return;
+
+--
+1.7.7.3
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/intel_idle_add_flush_tlb_param.patch new/patches.fixes/intel_idle_add_flush_tlb_param.patch
--- old/patches.fixes/intel_idle_add_flush_tlb_param.patch 2011-11-16 06:32:19.000000000 +0100
+++ new/patches.fixes/intel_idle_add_flush_tlb_param.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-From: Thomas Renninger
-Subject: intel_idle: Add a boot param to keep flushing TLBs
-Patch-Mainline: not yet
-References: bnc#675161
-
-This is a test patch. It may show up mainline if it helps, otherwise
-it can get reverted again soon.
-
----
- drivers/idle/intel_idle.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-Index: linux-2.6.38-master/drivers/idle/intel_idle.c
-===================================================================
---- linux-2.6.38-master.orig/drivers/idle/intel_idle.c
-+++ linux-2.6.38-master/drivers/idle/intel_idle.c
-@@ -91,6 +91,7 @@ static struct cpuidle_state *cpuidle_sta
- */
- static unsigned long long auto_demotion_disable_flags;
-
-+static int tlb_flushing;
- /*
- * Set this flag for states where the HW flushes the TLB for us
- * and so we don't need cross-calls to keep it consistent.
-@@ -229,7 +230,7 @@ static int intel_idle(struct cpuidle_dev
- * leave_mm() to avoid costly and often unnecessary wakeups
- * for flushing the user TLB's associated with the active mm.
- */
-- if (state->flags & CPUIDLE_FLAG_TLB_FLUSHED)
-+ if (!tlb_flushing && state->flags & CPUIDLE_FLAG_TLB_FLUSHED)
- leave_mm(cpu);
-
- if (!(lapic_timer_reliable_states & (1 << (cstate))))
-@@ -510,7 +511,8 @@ module_init(intel_idle_init);
- module_exit(intel_idle_exit);
-
- module_param(max_cstate, int, 0444);
--module_param(lapic_timer_reliable_states, int, 0444);
-+module_param(lapic_timer_reliable_states, uint, 0444);
-+module_param(tlb_flushing, int, 0644);
-
- MODULE_AUTHOR("Len Brown ");
- MODULE_DESCRIPTION("Cpuidle driver for Intel Hardware v" INTEL_IDLE_VERSION);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/intel_idle_lapic_param.patch new/patches.fixes/intel_idle_lapic_param.patch
--- old/patches.fixes/intel_idle_lapic_param.patch 2011-11-16 06:32:19.000000000 +0100
+++ new/patches.fixes/intel_idle_lapic_param.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-From: Thomas Renninger
-Subject: intel_idle: Make lapic_timer_reliable_states a boot param
-Patch-Mainline: not yet
-References: bnc#675161
-
-This is a test patch. It may show up mainline if it helps, otherwise
-it can get reverted again soon.
-
----
- drivers/idle/intel_idle.c | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
-index a46dddf..806243f 100644
---- a/drivers/idle/intel_idle.c
-+++ b/drivers/idle/intel_idle.c
-@@ -510,6 +510,7 @@ module_init(intel_idle_init);
- module_exit(intel_idle_exit);
-
- module_param(max_cstate, int, 0444);
-+module_param(lapic_timer_reliable_states, int, 0444);
-
- MODULE_AUTHOR("Len Brown ");
- MODULE_DESCRIPTION("Cpuidle driver for Intel Hardware v" INTEL_IDLE_VERSION);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/proc-mem-security-fix new/patches.fixes/proc-mem-security-fix
--- old/patches.fixes/proc-mem-security-fix 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/proc-mem-security-fix 2012-01-25 11:51:08.000000000 +0100
@@ -0,0 +1,263 @@
+From e2b4ed67f8ce25ba0347746a65e288735352aaf8 Mon Sep 17 00:00:00 2001
+From: Linus Torvalds
+Date: Tue, 17 Jan 2012 15:21:19 -0800
+Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling
+Patch-mainline: v3.3-rc1
+Git-commit: e268337dfe26dfc7efd422a804dbb27977a3cccc
+References: bnc#742279, CVE-2012-0056
+
+Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
+robust, and it also doesn't match the permission checking of any of the
+other related files.
+
+This changes it to do the permission checks at open time, and instead of
+tracking the process, it tracks the VM at the time of the open. That
+simplifies the code a lot, but does mean that if you hold the file
+descriptor open over an execve(), you'll continue to read from the _old_
+VM.
+
+That is different from our previous behavior, but much simpler. If
+somebody actually finds a load where this matters, we'll need to revert
+this commit.
+
+I suspect that nobody will ever notice - because the process mapping
+addresses will also have changed as part of the execve. So you cannot
+actually usefully access the fd across a VM change simply because all
+the offsets for IO would have changed too.
+
+Reported-by: Jüri Aedla
+Cc: Al Viro
+Signed-off-by: Linus Torvalds
+Acked-by: Michal Marek
+
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index 851ba3d..1fc1dca 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *inode, struct path *path)
+ return result;
+ }
+
+-static struct mm_struct *__check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+-
+- mm = get_task_mm(task);
+- if (!mm)
+- return ERR_PTR(-EINVAL);
+-
+- /*
+- * A task can always look at itself, in case it chooses
+- * to use system calls instead of load instructions.
+- */
+- if (task == current)
+- return mm;
+-
+- /*
+- * If current is actively ptrace'ing, and would also be
+- * permitted to freshly attach with ptrace now, permit it.
+- */
+- if (task_is_stopped_or_traced(task)) {
+- int match;
+- rcu_read_lock();
+- match = (ptrace_parent(task) == current);
+- rcu_read_unlock();
+- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
+- return mm;
+- }
+-
+- /*
+- * No one else is allowed.
+- */
+- mmput(mm);
+- return ERR_PTR(-EPERM);
+-}
+-
+-/*
+- * If current may access user memory in @task return a reference to the
+- * corresponding mm, otherwise ERR_PTR.
+- */
+-static struct mm_struct *check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+- int err;
+-
+- /*
+- * Avoid racing if task exec's as we might get a new mm but validate
+- * against old credentials.
+- */
+- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
+- if (err)
+- return ERR_PTR(err);
+-
+- mm = __check_mem_permission(task);
+- mutex_unlock(&task->signal->cred_guard_mutex);
+-
+- return mm;
+-}
+-
+-struct mm_struct *mm_for_maps(struct task_struct *task)
++static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+ {
+ struct mm_struct *mm;
+ int err;
+@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
+
+ mm = get_task_mm(task);
+ if (mm && mm != current->mm &&
+- !ptrace_may_access(task, PTRACE_MODE_READ)) {
++ !ptrace_may_access(task, mode)) {
+ mmput(mm);
+ mm = ERR_PTR(-EACCES);
+ }
+@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
+ return mm;
+ }
+
++struct mm_struct *mm_for_maps(struct task_struct *task)
++{
++ return mm_access(task, PTRACE_MODE_READ);
++}
++
+ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+ {
+ int res = 0;
+@@ -816,38 +763,39 @@ static const struct file_operations proc_single_file_operations = {
+
+ static int mem_open(struct inode* inode, struct file* file)
+ {
+- file->private_data = (void*)((long)current->self_exec_id);
++ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ struct mm_struct *mm;
++
++ if (!task)
++ return -ESRCH;
++
++ mm = mm_access(task, PTRACE_MODE_ATTACH);
++ put_task_struct(task);
++
++ if (IS_ERR(mm))
++ return PTR_ERR(mm);
++
+ /* OK to pass negative loff_t, we can catch out-of-range */
+ file->f_mode |= FMODE_UNSIGNED_OFFSET;
++ file->private_data = mm;
++
+ return 0;
+ }
+
+ static ssize_t mem_read(struct file * file, char __user * buf,
+ size_t count, loff_t *ppos)
+ {
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ int ret;
+ char *page;
+ unsigned long src = *ppos;
+- int ret = -ESRCH;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- ret = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out;
+-
+- mm = check_mem_permission(task);
+- ret = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- ret = -EIO;
+-
+- if (file->private_data != (void*)((long)current->self_exec_id))
+- goto out_put;
++ return -ENOMEM;
+
+ ret = 0;
+
+@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
+ }
+ *ppos = src;
+
+-out_put:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out:
+- put_task_struct(task);
+-out_no_task:
+ return ret;
+ }
+
+@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
+ {
+ int copied;
+ char *page;
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+ unsigned long dst = *ppos;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- copied = -ESRCH;
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- copied = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out_task;
+-
+- mm = check_mem_permission(task);
+- copied = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- copied = -EIO;
+- if (file->private_data != (void *)((long)current->self_exec_id))
+- goto out_mm;
++ return -ENOMEM;
+
+ copied = 0;
+ while (count > 0) {
+@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
+ }
+ *ppos = dst;
+
+-out_mm:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out_task:
+- put_task_struct(task);
+-out_no_task:
+ return copied;
+ }
+
+@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
+ return file->f_pos;
+ }
+
++static int mem_release(struct inode *inode, struct file *file)
++{
++ struct mm_struct *mm = file->private_data;
++
++ mmput(mm);
++ return 0;
++}
++
+ static const struct file_operations proc_mem_operations = {
+ .llseek = mem_lseek,
+ .read = mem_read,
+ .write = mem_write,
+ .open = mem_open,
++ .release = mem_release,
+ };
+
+ static ssize_t environ_read(struct file *file, char __user *buf,
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SUSE-bootsplash new/patches.suse/SUSE-bootsplash
--- old/patches.suse/SUSE-bootsplash 2011-11-24 18:45:54.000000000 +0100
+++ new/patches.suse/SUSE-bootsplash 2012-01-13 17:43:09.000000000 +0100
@@ -20,6 +20,9 @@
* Fix crash when updating boxes:
Don't reallocate picture.
+ * Add a workaround for Xen fb
+
+Signed-off-by: Takashi Iwai
Signed-off-by: Egbert Eich
---
drivers/tty/n_tty.c | 11
@@ -29,17 +32,17 @@
drivers/video/Makefile | 1
drivers/video/bootsplash/Kconfig | 17
drivers/video/bootsplash/Makefile | 5
- drivers/video/bootsplash/bootsplash.c | 2473 ++++++++++++++++++++++++++++++++++
+ drivers/video/bootsplash/bootsplash.c | 2493 ++++++++++++++++++++++++++++++++++
drivers/video/bootsplash/decode-jpg.c | 1045 ++++++++++++++
drivers/video/bootsplash/decode-jpg.h | 37
- drivers/video/bootsplash/render.c | 491 ++++++
+ drivers/video/bootsplash/render.c | 518 +++++++
drivers/video/console/bitblit.c | 31
drivers/video/console/fbcon.c | 58
- drivers/video/console/fbcon.h | 47
- include/linux/bootsplash.h | 85 +
+ drivers/video/console/fbcon.h | 48
+ include/linux/bootsplash.h | 87 +
include/linux/console_struct.h | 3
include/linux/fb.h | 4
- 17 files changed, 4350 insertions(+)
+ 17 files changed, 4400 insertions(+)
create mode 100644 drivers/video/bootsplash/Kconfig
create mode 100644 drivers/video/bootsplash/Makefile
create mode 100644 drivers/video/bootsplash/bootsplash.c
@@ -59,7 +62,7 @@
#include
/* number of characters left in xmit buffer before select has we have room */
-@@ -1796,6 +1798,15 @@ do_it_again:
+@@ -1796,6 +1798,15 @@
tty->minimum_to_wake = (minimum - (b - buf));
if (!input_available_p(tty, 0)) {
@@ -77,8 +80,8 @@
break;
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
-@@ -43,6 +43,8 @@
-
+@@ -44,6 +44,8 @@
+
#include
+#include
@@ -86,7 +89,7 @@
extern void ctrl_alt_del(void);
/*
-@@ -1201,6 +1203,13 @@ static void kbd_keycode(unsigned int key
+@@ -1202,6 +1204,13 @@
pr_warning("can't emulate rawmode for keycode %d\n",
keycode);
@@ -102,7 +105,7 @@
sparc_l1_a_state = false;
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
-@@ -4204,6 +4204,35 @@ void vcs_scr_updated(struct vc_data *vc)
+@@ -4204,6 +4204,35 @@
notify_update(vc);
}
@@ -140,7 +143,7 @@
*/
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
-@@ -2397,4 +2397,8 @@ if FB || SGI_NEWPORT_CONSOLE
+@@ -2423,4 +2423,8 @@
source "drivers/video/logo/Kconfig"
endif
@@ -151,7 +154,7 @@
endmenu
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
-@@ -14,6 +14,7 @@ fb-objs := $(f
+@@ -14,6 +14,7 @@
obj-$(CONFIG_VT) += console/
obj-$(CONFIG_LOGO) += logo/
obj-y += backlight/ display/
@@ -189,7 +192,7 @@
+obj-$(CONFIG_BOOTSPLASH) += render.o
--- /dev/null
+++ b/drivers/video/bootsplash/bootsplash.c
-@@ -0,0 +1,2473 @@
+@@ -0,0 +1,2493 @@
+/*
+ * linux/drivers/video/bootsplash/bootsplash.c -
+ * splash screen handling functions.
@@ -1279,14 +1282,14 @@
+
+ if (!vc || !vc->vc_splash_data || !vc->vc_splash_data->splash_state)
+ goto done;
-+ if (fg_console != vc->vc_num)
-+ goto done;
+ if (!vc->vc_splash_data->imgd->splash_silentjpeg)
+ goto done;
+
+ if (!vc->vc_splash_data->splash_dosilent)
+ goto done;
+ vc->vc_splash_data->splash_dosilent = 0;
++ if (fg_console != vc->vc_num)
++ goto done;
+
+ info = registered_fb[(int)con2fb_map[0]];
+
@@ -1585,6 +1588,18 @@
+
+ info->splash_data = vc->vc_splash_data;
+
++ info->splash_data->need_sync = 0;
++ /* XEN fb needs some sync after the direct modification of
++ * fb area; maybe other FBs would need similar hack, but
++ * so far I don't care.
++ */
++ if (!strcmp(info->fix.id, "xen")) {
++ info->splash_data->need_sync = 1;
++ /* sync the whole splash once */
++ splash_sync_region(info, 0, 0,
++ info->var.xres, info->var.yres);
++ }
++
+ /* vc_resize also calls con_switch which resets yscroll */
+ if (rows != vc->vc_rows || cols != vc->vc_cols)
+ vc_resize(vc, cols, rows);
@@ -1805,7 +1820,7 @@
+ return;
+ if (splash_data) {
+ if (splash_data->imgd->splash_silentjpeg
-+ && splash_data->splash_dosilent)
++ && splash_data->splash_dosilent) {
+ boxit(info->screen_base,
+ info->fix.line_length,
+ splash_data->imgd->splash_sboxes,
@@ -1815,6 +1830,14 @@
+ splash_data->splash_sboxes_yoff,
+ 1,
+ cf);
++ /* FIXME: get a proper width/height */
++ splash_sync_region(info,
++ splash_data->splash_sboxes_xoff,
++ splash_data->splash_sboxes_yoff,
++ info->var.xres -
++ splash_data->splash_sboxes_xoff,
++ 8);
++ }
+ }
+ }
+}
@@ -3753,7 +3776,7 @@
+#endif
--- /dev/null
+++ b/drivers/video/bootsplash/render.c
-@@ -0,0 +1,491 @@
+@@ -0,0 +1,518 @@
+/*
+ * linux/drivers/video/bootsplash/render.c - splash screen render functions.
+ */
@@ -3776,6 +3799,25 @@
+ printk(KERN_WARNING "%s: " fmt "\n", __func__, ##args)
+#endif
+
++/* fake a region sync */
++void splash_sync_region(struct fb_info *info, int x, int y,
++ int width, int height)
++{
++ struct splash_data *sd = info->splash_data;
++ if (sd && sd->need_sync) {
++ /* issue a fake copyarea (copy to the very same position)
++ * for marking the dirty region; this is required for Xen fb
++ * (bnc#739020)
++ */
++ struct fb_copyarea area;
++ area.sx = area.dx = x;
++ area.sy = area.dy = y;
++ area.width = width;
++ area.height = height;
++ info->fbops->fb_copyarea(info, &area);
++ }
++}
++
+void splash_putcs(struct vc_data *vc, struct fb_info *info,
+ const unsigned short *s, int count, int ypos, int xpos)
+{
@@ -3791,6 +3833,7 @@
+ int fg_color, bg_color, transparent;
+ int n;
+ int octpp = (info->var.bits_per_pixel + 1) >> 3;
++ int drawn_width;
+
+ if (!oops_in_progress
+ && (console_blanked || info->splash_data->splash_dosilent))
@@ -3819,6 +3862,7 @@
+ }
+ bgx = ((u32 *)info->pseudo_palette)[bg_color];
+ d = 0;
++ drawn_width = 0;
+ while (count--) {
+ c = scr_readw(s++);
+ src.ub = vc->vc_font.data
@@ -3882,7 +3926,9 @@
+ - vc->vc_font.width * octpp;
+ splashsrc.ub -= sd->pic->splash_pic_stride * vc->vc_font.height
+ - vc->vc_font.width * octpp;
++ drawn_width += vc->vc_font.width;
+ }
++ splash_sync_region(info, xpos, ypos, drawn_width, vc->vc_font.height);
+}
+
+static void splash_renderc(struct fb_info *info,
@@ -3973,6 +4019,7 @@
+ dst.ub += info->fix.line_length - width * octpp;
+ splashsrc.ub += sd->pic->splash_pic_stride - width * octpp;
+ }
++ splash_sync_region(info, xpos, ypos, width, height);
+}
+
+void splashcopy(u8 *dst, u8 *src, int height, int width,
@@ -4035,6 +4082,7 @@
+ height, width, info->fix.line_length,
+ sd->pic->splash_pic_stride,
+ octpp);
++ splash_sync_region(info, sx, sy, width, height);
+}
+
+void splash_clear(struct vc_data *vc, struct fb_info *info, int sy,
@@ -4073,6 +4121,7 @@
+ info->fix.line_length,
+ bgx,
+ (info->var.bits_per_pixel + 1) >> 3);
++ splash_sync_region(info, sx, sy, width, height);
+}
+
+void splash_bmove(struct vc_data *vc, struct fb_info *info, int sy,
@@ -4238,6 +4287,7 @@
+ info->fix.line_length,
+ 0,
+ (info->var.bits_per_pixel + 1) >> 3);
++ splash_sync_region(info, 0, 0, info->var.xres, info->var.yres);
+ } else {
+ /* splash_prepare(vc, info); *//* do we really need this? */
+ splash_clear_margins(vc, info, 0);
@@ -4257,7 +4307,7 @@
/*
* Accelerated handlers.
*/
-@@ -48,6 +51,12 @@ static void bit_bmove(struct vc_data *vc
+@@ -48,6 +51,12 @@
{
struct fb_copyarea area;
@@ -4270,7 +4320,7 @@
area.sx = sx * vc->vc_font.width;
area.sy = sy * vc->vc_font.height;
area.dx = dx * vc->vc_font.width;
-@@ -64,6 +73,12 @@ static void bit_clear(struct vc_data *vc
+@@ -64,6 +73,12 @@
int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
struct fb_fillrect region;
@@ -4283,7 +4333,7 @@
region.color = attr_bgcol_ec(bgshift, vc, info);
region.dx = sx * vc->vc_font.width;
region.dy = sy * vc->vc_font.height;
-@@ -161,6 +176,11 @@ static void bit_putcs(struct vc_data *vc
+@@ -161,6 +176,11 @@
image.height = vc->vc_font.height;
image.depth = 1;
@@ -4295,7 +4345,7 @@
if (attribute) {
buf = kmalloc(cellsize, GFP_KERNEL);
if (!buf)
-@@ -214,6 +234,11 @@ static void bit_clear_margins(struct vc_
+@@ -214,6 +234,11 @@
unsigned int bs = info->var.yres - bh;
struct fb_fillrect region;
@@ -4307,7 +4357,7 @@
region.color = attr_bgcol_ec(bgshift, vc, info);
region.rop = ROP_COPY;
-@@ -380,6 +405,12 @@ static void bit_cursor(struct vc_data *v
+@@ -380,6 +405,12 @@
cursor.image.depth = 1;
cursor.rop = ROP_XOR;
@@ -4330,7 +4380,7 @@
#ifdef FBCONDEBUG
# define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__ , ## args)
-@@ -95,7 +96,11 @@ enum {
+@@ -95,7 +96,11 @@
static struct display fb_display[MAX_NR_CONSOLES];
@@ -4342,7 +4392,7 @@
static signed char con2fb_map_boot[MAX_NR_CONSOLES];
static int logo_lines;
-@@ -536,6 +541,8 @@ static int fbcon_takeover(int show_logo)
+@@ -536,6 +541,8 @@
for (i = first_fb_vc; i <= last_fb_vc; i++)
con2fb_map[i] = info_idx;
@@ -4351,7 +4401,7 @@
err = take_over_console(&fb_con, first_fb_vc, last_fb_vc,
fbcon_is_default);
-@@ -1099,6 +1106,21 @@ static void fbcon_init(struct vc_data *v
+@@ -1099,6 +1106,21 @@
new_cols /= vc->vc_font.width;
new_rows /= vc->vc_font.height;
@@ -4373,7 +4423,7 @@
/*
* We must always set the mode. The mode of the previous console
* driver could be in the same resolution but we are using different
-@@ -1800,6 +1822,8 @@ static int fbcon_scroll(struct vc_data *
+@@ -1800,6 +1822,8 @@
fbcon_softback_note(vc, t, count);
if (logo_shown >= 0)
goto redraw_up;
@@ -4382,7 +4432,7 @@
switch (p->scrollmode) {
case SCROLL_MOVE:
fbcon_redraw_blit(vc, info, p, t, b - t - count,
-@@ -1891,6 +1915,8 @@ static int fbcon_scroll(struct vc_data *
+@@ -1891,6 +1915,8 @@
count = vc->vc_rows;
if (logo_shown >= 0)
goto redraw_down;
@@ -4391,7 +4441,7 @@
switch (p->scrollmode) {
case SCROLL_MOVE:
fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
-@@ -2039,6 +2065,12 @@ static void fbcon_bmove_rec(struct vc_da
+@@ -2039,6 +2065,12 @@
}
return;
}
@@ -4404,7 +4454,7 @@
ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,
height, width);
}
-@@ -2147,6 +2179,23 @@ static int fbcon_switch(struct vc_data *
+@@ -2147,6 +2179,23 @@
info = registered_fb[con2fb_map[vc->vc_num]];
ops = info->fbcon_par;
@@ -4428,7 +4478,7 @@
if (softback_top) {
if (softback_lines)
fbcon_set_origin(vc);
-@@ -2280,6 +2329,11 @@ static void fbcon_generic_blank(struct v
+@@ -2280,6 +2329,11 @@
{
struct fb_event event;
@@ -4440,7 +4490,7 @@
if (blank) {
unsigned short charmask = vc->vc_hi_font_mask ?
0x1ff : 0xff;
-@@ -2505,6 +2559,10 @@ static int fbcon_do_set_font(struct vc_d
+@@ -2505,6 +2559,10 @@
cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres);
rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
@@ -4453,7 +4503,7 @@
vc_resize(vc, cols, rows);
--- a/drivers/video/console/fbcon.h
+++ b/drivers/video/console/fbcon.h
-@@ -25,6 +25,53 @@
+@@ -25,6 +25,54 @@
* low-level frame buffer device
*/
@@ -4501,6 +4551,7 @@
+ int splash_sboxes_yoff;
+
+ bool color_set;
++ bool need_sync;
+};
+#endif
+
@@ -4509,7 +4560,7 @@
const u_char *fontdata;
--- /dev/null
+++ b/include/linux/bootsplash.h
-@@ -0,0 +1,85 @@
+@@ -0,0 +1,87 @@
+/*
+ * linux/drivers/video/bootsplash/bootsplash.h - splash screen definition.
+ *
@@ -4556,6 +4607,8 @@
+extern void splash_putcs(struct vc_data *vc, struct fb_info *info,
+ const unsigned short *s, int count,
+ int ypos, int xpos);
++extern void splash_sync_region(struct fb_info *info, int x, int y,
++ int width, int height);
+extern void splashcopy(u8 *dst, u8 *src, int height, int width,
+ int dstbytes, int srcbytes, int octpp);
+extern void splash_clear(struct vc_data *vc, struct fb_info *info, int sy,
@@ -4597,7 +4650,7 @@
+#endif
--- a/include/linux/console_struct.h
+++ b/include/linux/console_struct.h
-@@ -107,6 +107,9 @@ struct vc_data {
+@@ -107,6 +107,9 @@
unsigned long vc_uni_pagedir;
unsigned long *vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */
bool vc_panic_force_write; /* when oops/panic this VC can accept forced output/blanking */
@@ -4609,7 +4662,7 @@
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
-@@ -878,6 +878,10 @@ struct fb_info {
+@@ -878,6 +878,10 @@
void *fbcon_par; /* fbcon use-only private area */
/* From here on everything is device dependent */
void *par;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/stack-unwind new/patches.suse/stack-unwind
--- old/patches.suse/stack-unwind 2011-11-24 18:45:54.000000000 +0100
+++ new/patches.suse/stack-unwind 2012-01-13 17:43:09.000000000 +0100
@@ -19,7 +19,7 @@
arch/x86/include/asm/dwarf2.h | 3
arch/x86/include/asm/stacktrace.h | 4
arch/x86/include/asm/system.h | 10
- arch/x86/kernel/dumpstack.c | 89 ++
+ arch/x86/kernel/dumpstack.c | 87 ++
arch/x86/kernel/dumpstack_32.c | 4
arch/x86/kernel/dumpstack_64.c | 7
arch/x86/kernel/entry_32.S | 35
@@ -34,7 +34,7 @@
kernel/Makefile | 1
kernel/module.c | 32
lib/Kconfig.debug | 18
- 21 files changed, 2212 insertions(+), 3 deletions(-)
+ 21 files changed, 2210 insertions(+), 3 deletions(-)
--- a/Makefile
+++ b/Makefile
@@ -310,7 +310,7 @@
static int die_counter;
void printk_address(unsigned long address, int reliable)
-@@ -62,6 +68,71 @@ print_ftrace_graph_addr(unsigned long ad
+@@ -62,6 +68,69 @@ print_ftrace_graph_addr(unsigned long ad
{ }
#endif
@@ -318,7 +318,7 @@
+ const struct stacktrace_ops *ops, void *data)
+{
+ int n = 0;
-+#ifdef CONFIG_UNWIND_INFO
++#ifdef CONFIG_STACK_UNWIND
+ unsigned long sp = UNW_SP(info);
+
+ if (arch_unw_user_mode(info))
@@ -341,7 +341,7 @@
+ unsigned long **stack, unsigned long *bp,
+ const struct stacktrace_ops *ops, void *data)
+{
-+#ifdef CONFIG_UNWIND_INFO
++#ifdef CONFIG_STACK_UNWIND
+ int unw_ret = 0;
+ struct unwind_frame_info info;
+ if (call_trace < 0)
@@ -352,27 +352,25 @@
+ unw_ret = dump_trace_unwind(&info, ops, data);
+ } else if (task == current)
+ unw_ret = unwind_init_running(&info, dump_trace_unwind, ops, data);
-+ else {
-+ if (unwind_init_blocked(&info, task) == 0)
-+ unw_ret = dump_trace_unwind(&info, ops, data);
-+ }
++#ifdef CONFIG_SMP
++ else if (task->on_cpu)
++ /* nothing */;
++#endif
++ else if (unwind_init_blocked(&info, task) == 0)
++ unw_ret = dump_trace_unwind(&info, ops, data);
+ if (unw_ret > 0) {
+ if (call_trace == 1 && !arch_unw_user_mode(&info)) {
+ ops->warning_symbol(data, "DWARF2 unwinder stuck at %s\n",
-+ UNW_PC(&info));
-+ if ((long)UNW_SP(&info) < 0) {
++ UNW_PC(&info));
++ if (UNW_SP(&info) >= PAGE_OFFSET) {
+ ops->warning(data, "Leftover inexact backtrace:\n");
-+ *stack = (unsigned long *)UNW_SP(&info);
-+ if (!stack) {
-+ *bp = UNW_FP(&info);
-+ return -1;
-+ }
-+ } else
-+ ops->warning(data, "Full inexact backtrace again:\n");
-+ } else if (call_trace >= 1) {
++ *stack = (void *)UNW_SP(&info);
++ *bp = UNW_FP(&info);
++ return 0;
++ }
++ } else if (call_trace >= 1)
+ return -1;
-+ } else
-+ ops->warning(data, "Full inexact backtrace again:\n");
++ ops->warning(data, "Full inexact backtrace again:\n");
+ } else
+ ops->warning(data, "Inexact backtrace:\n");
+#endif
++++++ patches.xen.tar.bz2 ++++++
++++ 35891 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.KLbdiw/_old 2012-01-27 15:21:10.000000000 +0100
+++ /var/tmp/diff_new_pack.KLbdiw/_new 2012-01-27 15:21:10.000000000 +0100
@@ -143,6 +143,9 @@
patches.arch/ppc64-xmon-dmesg-printing.patch
patches.arch/ppc-prom-nodisplay.patch
patches.fixes/ptrace-getsiginfo
+ # KVM patches for OBS
+ patches.arch/ppc-kvm-convert-rma-allocation.patch
+ patches.arch/ppc-kvm-add-hpt-preallocator.patch
########################################################
# PS3
@@ -174,6 +177,7 @@
patches.suse/readahead-request-tunables.patch
patches.fixes/fs-partitions-efi-c-corrupted-guid-partition-tables-can-cause-kernel-oops
patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch
+ patches.fixes/proc-mem-security-fix
########################################################
# IPC patches
@@ -230,9 +234,6 @@
## cpuidle perf events cleanups and related
patches.arch/perf_timechart_fix_zero_timestamps.patch
- patches.fixes/intel_idle_lapic_param.patch
- patches.fixes/intel_idle_add_flush_tlb_param.patch
-
########################################################
# AGP, graphics related stuff
########################################################
@@ -368,6 +369,7 @@
########################################################
# DRM/Video
########################################################
+ patches.fixes/0001-fix-NULL-pointer-dereference-in-DSS2-VENC-sysfs-debu.patch
########################################################
# video4linux
@@ -616,9 +618,7 @@
patches.xen/xen3-patch-2.6.39
patches.xen/xen3-patch-3.0
patches.xen/xen3-patch-3.1
- patches.xen/xen3-patch-3.2-rc3
- patches.xen/xen3-patch-3.2-rc4-rc5
- patches.xen/xen3-patch-3.2-rc5-rc6
+ patches.xen/xen3-patch-3.2
patches.xen/xen3-apei_allow_drivers_access_nvs_ram.patch
patches.xen/xen3-acpi_implement_overriding_of_arbitrary_acpi_tables_via_initrd.patch
patches.xen/xen3-stack-unwind
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.KLbdiw/_old 2012-01-27 15:21:10.000000000 +0100
+++ /var/tmp/diff_new_pack.KLbdiw/_new 2012-01-27 15:21:10.000000000 +0100
@@ -1,3 +1,3 @@
-2012-01-05 16:15:39 +0100
-GIT Revision: 778e265979b52828c8d15a8e70d973702c835611
+2012-01-25 11:51:08 +0100
+GIT Revision: 2206a5c5b9aa64bd9a741830257f184818a0f6ee
GIT Branch: master
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org