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