rpms/kernel/F-9 linux-2.6-x86-dont-map-vdso-when-disabled.patch, NONE, 1.1 linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch, NONE, 1.1 linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch, NONE, 1.1 linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch, NONE, 1.1 kernel.spec, 1.645, 1.646
Chuck Ebbert (cebbert)
fedora-extras-commits at redhat.com
Tue May 20 07:16:34 UTC 2008
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6335
Modified Files:
kernel.spec
Added Files:
linux-2.6-x86-dont-map-vdso-when-disabled.patch
linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch
linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch
linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch
Log Message:
* Tue May 20 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25.4-27
- x86: don't map VDSO into userspace when it's disabled (#229304)
- x86: fix ASM constraint in do_IRQ()
- x86: map PCI ROM by default again (F8 #440644)
linux-2.6-x86-dont-map-vdso-when-disabled.patch:
--- NEW FILE linux-2.6-x86-dont-map-vdso-when-disabled.patch ---
From: Roland McGrath <roland at redhat.com>
Date: Wed, 9 Apr 2008 08:30:06 +0000 (-0700)
Subject: x86 vDSO: don't map 32-bit vdso when disabled
X-Git-Tag: v2.6.26-rc1~1154^2~608
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=5de253cc5b1f565f7aeb5bacd67bac37e943ceef
x86 vDSO: don't map 32-bit vdso when disabled
We map a VMA for the 32-bit vDSO even when it's disabled, which is stupid.
For the 32-bit kernel it's the vdso_enabled boot parameter/sysctl
and for the 64-bit kernel it's the vdso32 boot parameter/syscall32 sysctl.
When it's disabled, we don't pass AT_SYSINFO_EHDR so processes don't use
the vDSO for anything, but we still map it. For the non-compat vDSO,
this means we're always putting an extra VMA somewhere, maybe lousing
up the control of the address space the user was hoping for.
Honor the setting by doing nothing in arch_setup_additional_pages.
[ also see: "x86 vDSO: don't use disabled vDSO for signal trampoline" ]
Signed-off-by: Roland McGrath <roland at redhat.com>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---
diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index 348f134..f7e78d8 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -325,6 +325,9 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
int ret = 0;
bool compat;
+ if (vdso_enabled == VDSO_DISABLED)
+ return 0;
+
down_write(&mm->mmap_sem);
/* Test compat mode once here, in case someone
linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch:
--- NEW FILE linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch ---
From: Roland McGrath <roland at redhat.com>
Date: Wed, 9 Apr 2008 08:29:27 +0000 (-0700)
Subject: x86 vDSO: don't use disabled vDSO for signal trampoline
X-Git-Tag: v2.6.26-rc1~1154^2~609
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=1a3e4ca41c5a38975023a6e8831c309d3322889c
x86 vDSO: don't use disabled vDSO for signal trampoline
If the vDSO was not mapped, don't use it as the "restorer" for a signal
handler. Whether we have a pointer in mm->context.vdso depends on what
happened at exec time, so we shouldn't check any global flags now.
Background:
Currently, every 32-bit exec gets the vDSO mapped even if it's disabled
(the process just doesn't get told about it). Because it's in fact
always there, the bug that this patch fixes cannot happen now. With
the second patch, it won't be mapped at all when it's disabled, which is
one of the things that people might really want when they disable it (so
nothing they didn't ask for goes into their address space).
The 32-bit signal handler setup when SA_RESTORER is not used refers to
current->mm->context.vdso without regard to whether the vDSO has been
disabled when the process was exec'd. This patch fixes this not to use
it when it's null, which becomes possible after the second patch. (This
never happens in normal use, because glibc's sigaction call uses
SA_RESTORER unless glibc detected the vDSO.)
Signed-off-by: Roland McGrath <roland at redhat.com>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
index 5e7771a..05e155d 100644
--- a/arch/x86/ia32/ia32_signal.c
+++ b/arch/x86/ia32/ia32_signal.c
@@ -468,7 +468,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
restorer = ka->sa.sa_restorer;
} else {
/* Return stub is in 32bit vsyscall page */
- if (current->binfmt->hasvdso)
+ if (current->mm->context.vdso)
restorer = VDSO32_SYMBOL(current->mm->context.vdso,
sigreturn);
else
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c
index 0157a6f..011c62f 100644
--- a/arch/x86/kernel/signal_32.c
+++ b/arch/x86/kernel/signal_32.c
@@ -365,7 +365,7 @@ static int setup_frame(int sig, struct k_sigaction *ka,
goto give_sigsegv;
}
- if (current->binfmt->hasvdso)
+ if (current->mm->context.vdso)
restorer = VDSO32_SYMBOL(current->mm->context.vdso, sigreturn);
else
restorer = &frame->retcode;
linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch:
--- NEW FILE linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch ---
From: Jan Beulich <jbeulich at novell.com>
Date: Tue, 22 Apr 2008 15:16:50 +0000 (+0100)
Subject: i386: fix asm constraint in do_IRQ()
X-Git-Tag: v2.6.26-rc1~1045^2~27
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=5065dbafc299507f16731434e95b91dadff03006
i386: fix asm constraint in do_IRQ()
Two prior changes resulted in the "ecx" clobber being lost.
Signed-off-by: Jan Beulich <jbeulich at novell.com>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index 6ea67b7..00bda7b 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -134,7 +134,7 @@ unsigned int do_IRQ(struct pt_regs *regs)
: "=a" (arg1), "=d" (arg2), "=b" (bx)
: "0" (irq), "1" (desc), "2" (isp),
"D" (desc->handle_irq)
- : "memory", "cc"
+ : "memory", "cc", "ecx"
);
} else
#endif
linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch:
--- NEW FILE linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch ---
From: Linus Torvalds <torvalds at linux-foundation.org>
Date: Fri, 9 May 2008 01:41:48 +0000 (-0700)
Subject: Revert "PCI: remove default PCI expansion ROM memory allocation"
X-Git-Tag: v2.6.26-rc2~25
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=8d539108560ec121d59eee05160236488266221c
Revert "PCI: remove default PCI expansion ROM memory allocation"
This reverts commit 9f8daccaa05c14e5643bdd4faf5aed9cc8e6f11e, which was
reported to break X startup (xf86-video-ati-6.8.0). See
http://bugs.freedesktop.org/show_bug.cgi?id=15523
for details.
Reported-by: Laurence Withers <l at lwithers.me.uk>
Cc: Gary Hade <garyhade at us.ibm.com>
Cc: Greg KH <greg at kroah.com>
Cc: Jan Beulich <jbeulich at novell.com>
Cc: "Jun'ichi Nomura" <j-nomura at ce.jp.nec.com>
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: Ingo Molnar <mingo at elte.hu>
Cc: Thomas Gleixner <tglx at linutronix.de>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---
[cebbert at redhat.com: backport, remove first hunk to make port easier]
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -141,12 +128,8 @@ void __init dmi_check_skip_isa_align(void)
void __devinit pcibios_fixup_bus(struct pci_bus *b)
{
- struct pci_dev *dev;
-
pcibios_fixup_ghosts(b);
pci_read_bridge_bases(b);
- list_for_each_entry(dev, &b->devices, bus_list)
- pcibios_fixup_device_resources(dev);
}
/*
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.645
retrieving revision 1.646
diff -u -r1.645 -r1.646
--- kernel.spec 19 May 2008 22:17:11 -0000 1.645
+++ kernel.spec 20 May 2008 07:15:46 -0000 1.646
@@ -575,6 +575,10 @@
Patch42: linux-2.6-x86-tune-generic.patch
Patch75: linux-2.6-x86-debug-boot.patch
Patch80: linux-2.6-smp-boot-delay.patch
+Patch85: linux-2.6-x86-dont-map-vdso-when-disabled.patch
+Patch86: linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch
+Patch87: linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch
+Patch88: linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch
Patch123: linux-2.6-ppc-rtc.patch
Patch140: linux-2.6-ps3-ehci-iso.patch
@@ -1023,6 +1027,13 @@
ApplyPatch linux-2.6-x86-tune-generic.patch
# Delay longer during boot on x86 while waiting for secondary processors
ApplyPatch linux-2.6-smp-boot-delay.patch
+# don't map or use disabled x86 vdso
+ApplyPatch linux-2.6-x86-dont-map-vdso-when-disabled.patch
+ApplyPatch linux-2.6-x86-dont-use-disabled-vdso-for-signals.patch
+# ecx is clobbered during IRQs (!)
+ApplyPatch linux-2.6-x86-fix-asm-constraint-in-do_IRQ.patch
+# allocate PCI ROM by default again
+ApplyPatch linux-2.6-x86-pci-revert-remove-default-rom-allocation.patch
#
# PowerPC
@@ -1806,6 +1817,11 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Tue May 20 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25.4-27
+- x86: don't map VDSO into userspace when it's disabled (#229304)
+- x86: fix ASM constraint in do_IRQ()
+- x86: map PCI ROM by default again (F8 #440644)
+
* Mon May 19 2008 John W. Linville <linville at redhat.com> 2.6.25.4-26
- Re-sync wireless bits w/ current upstream
More information about the fedora-extras-commits
mailing list