rpms/kernel/F-8 linux-2.6-acpi-disable-gpe-fix.patch, NONE, 1.1 linux-2.6-x86-clear-df-for-signals.patch, NONE, 1.1 kernel.spec, 1.369, 1.370 linux-2.6-utrace-tracehook.patch, 1.18, 1.19
Chuck Ebbert (cebbert)
fedora-extras-commits at redhat.com
Mon Mar 10 18:49:39 UTC 2008
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv12087
Modified Files:
kernel.spec linux-2.6-utrace-tracehook.patch
Added Files:
linux-2.6-acpi-disable-gpe-fix.patch
linux-2.6-x86-clear-df-for-signals.patch
Log Message:
* Mon Mar 10 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-24
- ACPI: really disable stray GPEs (#251744)
- x86: clear direction flag before calling signal handlers
linux-2.6-acpi-disable-gpe-fix.patch:
--- NEW FILE linux-2.6-acpi-disable-gpe-fix.patch ---
Disable stray GPE correctly
https://bugzilla.redhat.com/show_bug.cgi?id=251744
http://bugzilla.kernel.org/show_bug.cgi?id=6217
Sighed-off-by: Zhang Rui <rui.zhang at intel.com>
---
drivers/acpi/events/evgpe.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-2.6/drivers/acpi/events/evgpe.c
===================================================================
--- linux-2.6.orig/drivers/acpi/events/evgpe.c
+++ linux-2.6/drivers/acpi/events/evgpe.c
@@ -248,7 +248,8 @@ acpi_status acpi_ev_disable_gpe(struct a
ACPI_FUNCTION_TRACE(ev_disable_gpe);
- if (!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK)) {
+ if (gpe_event_info->flags &&
+ (!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK))) {
return_ACPI_STATUS(AE_OK);
}
linux-2.6-x86-clear-df-for-signals.patch:
--- NEW FILE linux-2.6-x86-clear-df-for-signals.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
Commit: e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
Parent: ce4796d1e16cf3761dc2a02b8d588667d05b3078
Author: Aurelien Jarno <aurelien at aurel32.net>
AuthorDate: Wed Mar 5 19:14:24 2008 +0100
Committer: Ingo Molnar <mingo at elte.hu>
CommitDate: Fri Mar 7 16:39:14 2008 +0100
x86: clear DF before calling signal handler
The Linux kernel currently does not clear the direction flag before
calling a signal handler, whereas the x86/x86-64 ABI requires that.
Linux had this behavior/bug forever, but this becomes a real problem
with gcc version 4.3, which assumes that the direction flag is
correctly cleared at the entry of a function.
This patches changes the setup_frame() functions to clear the
direction before entering the signal handler.
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Acked-by: H. Peter Anvin <hpa at zytor.com>
---
arch/x86/ia32/ia32_signal.c | 4 ++--
arch/x86/kernel/signal_32.c | 4 ++--
arch/x86/kernel/signal_64.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
index 1c0503b..5e7771a 100644
--- a/arch/x86/ia32/ia32_signal.c
+++ b/arch/x86/ia32/ia32_signal.c
@@ -500,7 +500,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
regs->ss = __USER32_DS;
set_fs(USER_DS);
- regs->eflags &= ~TF_MASK;
+ regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
@@ -600,7 +600,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
regs->ss = __USER32_DS;
set_fs(USER_DS);
- regs->eflags &= ~TF_MASK;
+ regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c
index caee1f0..0157a6f 100644
--- a/arch/x86/kernel/signal_32.c
+++ b/arch/x86/kernel/signal_32.c
@@ -407,7 +407,7 @@ static int setup_frame(int sig, struct k_sigaction *ka,
* The tracer may want to single-step inside the
* handler too.
*/
- regs->eflags &= ~TF_MASK;
+ regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
@@ -500,7 +500,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
* The tracer may want to single-step inside the
* handler too.
*/
- regs->eflags &= ~TF_MASK;
+ regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c
index 7347bb1..56b72fb 100644
--- a/arch/x86/kernel/signal_64.c
+++ b/arch/x86/kernel/signal_64.c
@@ -295,7 +295,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
see include/asm-x86_64/uaccess.h for details. */
set_fs(USER_DS);
- regs->eflags &= ~TF_MASK;
+ regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
#ifdef DEBUG_SIG
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.369
retrieving revision 1.370
diff -u -r1.369 -r1.370
--- kernel.spec 10 Mar 2008 16:42:26 -0000 1.369
+++ kernel.spec 10 Mar 2008 18:49:01 -0000 1.370
@@ -588,6 +588,7 @@
Patch70: linux-2.6-x86_64-silence-up-apic-errors.patch
Patch75: linux-2.6-x86-debug-boot.patch
Patch76: linux-2.6-x86-dont-use-p6-nops.patch
+Patch77: linux-2.6-x86-clear-df-for-signals.patch
Patch86: linux-2.6-alsa-support-sis7019.patch
Patch87: linux-2.6-alsa-hda-stac-dmic.patch
@@ -675,6 +676,7 @@
#Patch780: linux-2.6-clockevents-fix-resume-logic.patch
Patch761: linux-2.6-acpi-video-backlight-rationalize.patch
Patch763: linux-2.6-acpi-video-fix-multiple-busses.patch
+Patch766: linux-2.6-acpi-disable-gpe-fix.patch
Patch784: linux-2.6-acpi-eeepc-hotkey.patch
Patch820: linux-2.6-compile-fixes.patch
@@ -1002,6 +1004,10 @@
# Revert -stable pieces we get from elsewhere here
ApplyPatch linux-2.6-upstream-reverts.patch -R
+# clear DF before calling signal handlers
+# (must be applied before utrace)
+ApplyPatch linux-2.6-x86-clear-df-for-signals.patch
+
# Roland's utrace ptrace replacement.
# Main patch includes i386, x86_64, powerpc.
ApplyPatch linux-2.6-utrace-tracehook.patch
@@ -1220,15 +1226,6 @@
ApplyPatch linux-2.6-ata-quirk.patch
# actually mask the intended DMA modes from the blacklist
ApplyPatch linux-2.6-libata-fix-hpt-svw-dma-masking.patch
-# Enable ACPI ATA objects
-# add option to disable PATA DMA
-# fix resume failure on some systems
-# serverworks is broken with some drive combinations
-# fix libata IORDY handling
-# fix ATA tape drives
-# allow 12-byte SCSI commands for ATAPI devices
-# fix ahci reset
-# work around broken lba48 disks
# wireless patches headed for 2.6.25
ApplyPatch linux-2.6-wireless.patch
@@ -1257,17 +1254,13 @@
ApplyPatch linux-2.6-netdev-atl2.patch
# ACPI/PM patches
-# fix EC init
# fix multiple ACPI brightness problems (#427518)
ApplyPatch linux-2.6-acpi-video-backlight-rationalize.patch
ApplyPatch linux-2.6-acpi-video-fix-multiple-busses.patch
-# fix date/time display when using PM_TRACE
-# Send button state on create / resume
-# fix cpuidle regressions
-# fix EC init
+# disable stray gpe properly
+ApplyPatch linux-2.6-acpi-disable-gpe-fix.patch
# Eeepc hotkey driver
ApplyPatch linux-2.6-acpi-eeepc-hotkey.patch
-# fix EC init fix
# Fix excessive wakeups
# Make hdaps timer only tick when in use.
@@ -1920,6 +1913,10 @@
%changelog
+* Mon Mar 10 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-24
+- ACPI: really disable stray GPEs (#251744)
+- x86: clear direction flag before calling signal handlers
+
* Mon Mar 10 2008 Jarod Wilson <jwilson at redhat.com> 2.6.24.3-23
- firewire-sbp2: improved ability to reconnect to devices
following a bus reset
linux-2.6-utrace-tracehook.patch:
Index: linux-2.6-utrace-tracehook.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-utrace-tracehook.patch,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- linux-2.6-utrace-tracehook.patch 15 Feb 2008 23:58:53 -0000 1.18
+++ linux-2.6-utrace-tracehook.patch 10 Mar 2008 18:49:01 -0000 1.19
@@ -875,23 +875,25 @@
--- linux-2.6/arch/x86/ia32/ia32_signal.c
+++ linux-2.6/arch/x86/ia32/ia32_signal.c
-@@ -492,11 +492,7 @@ int ia32_setup_frame(int sig, struct k_s
+@@ -492,11 +492,8 @@ int ia32_setup_frame(int sig, struct k_s
regs->cs = __USER32_CS;
regs->ss = __USER32_DS;
-
set_fs(USER_DS);
-- regs->eflags &= ~TF_MASK;
+- regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
++ regs->eflags &= ~X86_EFLAGS_DF;
- if (test_thread_flag(TIF_SINGLESTEP))
- ptrace_notify(SIGTRAP);
#if DEBUG_SIG
printk("SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
-@@ -600,9 +596,6 @@ int ia32_setup_rt_frame(int sig, struct
+@@ -600,9 +596,7 @@ int ia32_setup_rt_frame(int sig, struct
regs->ss = __USER32_DS;
set_fs(USER_DS);
-- regs->eflags &= ~TF_MASK;
+- regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
++ regs->eflags &= ~X86_EFLAGS_DF;
- if (test_thread_flag(TIF_SINGLESTEP))
- ptrace_notify(SIGTRAP);
@@ -1000,11 +1002,12 @@
#include <linux/unistd.h>
#include <linux/stddef.h>
#include <linux/personality.h>
-@@ -295,9 +295,6 @@ static int setup_rt_frame(int sig, struc
+@@ -295,9 +295,7 @@ static int setup_rt_frame(int sig, struc
see include/asm-x86_64/uaccess.h for details. */
set_fs(USER_DS);
-- regs->eflags &= ~TF_MASK;
+- regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
++ regs->eflags &= ~X86_EFLAGS_DF;
- if (test_thread_flag(TIF_SINGLESTEP))
- ptrace_notify(SIGTRAP);
#ifdef DEBUG_SIG
@@ -1430,7 +1433,7 @@
#include <linux/elf.h>
#include <linux/binfmts.h>
#include <asm/processor.h>
-@@ -390,16 +390,6 @@ static int setup_frame(int sig, struct k
+@@ -390,16 +390,7 @@ static int setup_frame(int sig, struct k
regs->xss = __USER_DS;
regs->xcs = __USER_CS;
@@ -1440,14 +1443,15 @@
- * The tracer may want to single-step inside the
- * handler too.
- */
-- regs->eflags &= ~TF_MASK;
+- regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
++ regs->eflags &= ~X86_EFLAGS_DF;
- if (test_thread_flag(TIF_SINGLESTEP))
- ptrace_notify(SIGTRAP);
-
#if DEBUG_SIG
printk("SIG deliver (%s:%d): sp=%p pc=%p ra=%p\n",
current->comm, current->pid, frame, regs->eip, frame->pretcode);
-@@ -483,16 +473,6 @@ static int setup_rt_frame(int sig, struc
+@@ -483,16 +473,7 @@ static int setup_rt_frame(int sig, struc
regs->xss = __USER_DS;
regs->xcs = __USER_CS;
@@ -1457,7 +1461,8 @@
- * The tracer may want to single-step inside the
- * handler too.
- */
-- regs->eflags &= ~TF_MASK;
+- regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF);
++ regs->eflags &= ~X86_EFLAGS_DF;
- if (test_thread_flag(TIF_SINGLESTEP))
- ptrace_notify(SIGTRAP);
-
More information about the fedora-extras-commits
mailing list