From: Zachary Amsden <zach@vmware.com>
To: Rusty Russell <rusty@rustcorp.com.au>,
Jeremy Fitzhardinge <jeremy@goop.org>,
Virtualization Mailing List <virtualization@lists.osdl.org>
Subject: Patch: use .pushsection/.popsection
Date: Tue, 08 Aug 2006 23:02:10 -0700 [thread overview]
Message-ID: <44D97A62.9020106@vmware.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 36 bytes --]
I think this might fix the X bug...
[-- Attachment #2: use-push-popsection.patch --]
[-- Type: text/plain, Size: 3823 bytes --]
diff -r e698e6ee2fa1 arch/i386/kernel/entry.S
--- a/arch/i386/kernel/entry.S Tue Aug 08 10:18:34 2006 -0700
+++ b/arch/i386/kernel/entry.S Tue Aug 08 10:36:17 2006 -0700
@@ -162,17 +162,17 @@ 2: popl %es; \
2: popl %es; \
CFI_ADJUST_CFA_OFFSET -4;\
/*CFI_RESTORE es;*/\
-.section .fixup,"ax"; \
+.pushsection .fixup,"ax"; \
3: movl $0,(%esp); \
jmp 1b; \
4: movl $0,(%esp); \
jmp 2b; \
-.previous; \
-.section __ex_table,"a";\
+.popsection \
+.pushsection __ex_table,"a";\
.align 4; \
.long 1b,3b; \
.long 2b,4b; \
-.previous
+.popsection
#define RING0_INT_FRAME \
CFI_STARTPROC simple;\
@@ -300,10 +300,10 @@ sysenter_past_esp:
cmpl $__PAGE_OFFSET-3,%ebp
jae syscall_fault
1: movl (%ebp),%ebp
-.section __ex_table,"a"
+.pushsection __ex_table,"a"
.align 4
.long 1b,syscall_fault
-.previous
+.popsection
pushl %eax
CFI_ADJUST_CFA_OFFSET 4
@@ -378,18 +378,18 @@ restore_nocheck_notrace:
addl $4, %esp
CFI_ADJUST_CFA_OFFSET -4
1: INTERRUPT_RETURN
-.section .fixup,"ax"
+.pushsection .fixup,"ax"
iret_exc:
TRACE_IRQS_ON
ENABLE_INTERRUPTS
pushl $0 # no error code
pushl $do_iret_error
jmp error_code
-.previous
-.section __ex_table,"a"
+.popsection
+.pushsection __ex_table,"a"
.align 4
.long 1b,iret_exc
-.previous
+.popsection
CFI_RESTORE_STATE
ldt_ss:
@@ -415,11 +415,11 @@ ldt_ss:
TRACE_IRQS_IRET
RESTORE_REGS
lss 20+4(%esp), %esp # switch to 16bit stack
-1: INTERRUPT_RETURN
-.section __ex_table,"a"
+1: iret
+.pushsection __ex_table,"a"
.align 4
.long 1b,iret_exc
-.previous
+.popsection
CFI_ENDPROC
# perform work that needs to be done immediately before resumption
@@ -525,14 +525,14 @@ syscall_badsys:
je 28f; \
27: popl %eax; \
CFI_ADJUST_CFA_OFFSET -4; \
-.section .fixup,"ax"; \
+.pushsection .fixup,"ax"; \
28: movl $__KERNEL_DS, %eax; \
movl %eax, %ds; \
movl %eax, %es; \
/* switch to 32bit stack */ \
FIXUP_ESPFIX_STACK; \
jmp 27b; \
-.previous
+.popsection
/*
* Build the entry stubs and pointer table with
@@ -639,7 +639,7 @@ error_code:
call *%edi
jmp ret_from_exception
CFI_ENDPROC
-.previous
+KPROBE_EXIT
ENTRY(coprocessor_error)
RING0_INT_FRAME
@@ -715,7 +715,7 @@ debug_stack_correct:
call do_debug
jmp ret_from_exception
CFI_ENDPROC
-.previous
+KPROBE_EXIT
/*
* NMI is doubly nasty. It can happen _while_ we're handling
@@ -795,12 +795,12 @@ nmi_16bit_stack:
call do_nmi
RESTORE_REGS
lss 12+4(%esp), %esp # back to 16bit stack
-1: INTERRUPT_RETURN
- CFI_ENDPROC
-.section __ex_table,"a"
+1: iret
+ CFI_ENDPROC
+.pushsection __ex_table,"a"
.align 4
.long 1b,iret_exc
-.previous
+.popsection
#ifdef CONFIG_PARAVIRT
ENTRY(nopara_iret)
@@ -821,7 +821,7 @@ KPROBE_ENTRY(int3)
call do_int3
jmp ret_from_exception
CFI_ENDPROC
-.previous
+KPROBE_EXIT
ENTRY(overflow)
RING0_INT_FRAME
@@ -886,7 +886,7 @@ KPROBE_ENTRY(general_protection)
CFI_ADJUST_CFA_OFFSET 4
jmp error_code
CFI_ENDPROC
-.previous
+KPROBE_EXIT
ENTRY(alignment_check)
RING0_EC_FRAME
diff -r e698e6ee2fa1 include/asm-i386/alternative-asm.i
--- a/include/asm-i386/alternative-asm.i Tue Aug 08 10:18:34 2006 -0700
+++ b/include/asm-i386/alternative-asm.i Tue Aug 08 10:33:13 2006 -0700
@@ -3,10 +3,10 @@
#ifdef CONFIG_SMP
.macro LOCK_PREFIX
1: lock
- .section .smp_locks,"a"
+ .pushsection .smp_locks,"a"
.align 4
.long 1b
- .previous
+ .popsection
.endm
#else
.macro LOCK_PREFIX
diff -r e698e6ee2fa1 include/linux/linkage.h
--- a/include/linux/linkage.h Tue Aug 08 10:18:34 2006 -0700
+++ b/include/linux/linkage.h Tue Aug 08 10:35:55 2006 -0700
@@ -35,8 +35,11 @@
#endif
#define KPROBE_ENTRY(name) \
- .section .kprobes.text, "ax"; \
+ .pushsection .kprobes.text, "ax"; \
ENTRY(name)
+
+#define KPROBE_EXIT \
+ .popsection
#ifndef END
#define END(name) \
[-- Attachment #3: Type: text/plain, Size: 165 bytes --]
_______________________________________________
Virtualization mailing list
Virtualization@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/virtualization
next reply other threads:[~2006-08-09 6:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-09 6:02 Zachary Amsden [this message]
2006-08-09 6:09 ` Patch: use .pushsection/.popsection Jeremy Fitzhardinge
2006-08-09 6:26 ` Andi Kleen
2006-08-09 6:33 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44D97A62.9020106@vmware.com \
--to=zach@vmware.com \
--cc=jeremy@goop.org \
--cc=rusty@rustcorp.com.au \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.