* [PATCH] x86: traps.c declare functions before they get used
@ 2008-12-15 16:55 Jaswinder Singh
2008-12-16 20:19 ` Ingo Molnar
0 siblings, 1 reply; 5+ messages in thread
From: Jaswinder Singh @ 2008-12-15 16:55 UTC (permalink / raw)
To: Ingo Molnar, LKML, Andi Kleen
Signed-off-by: Jaswinder Singh <jaswinder@infradead.org>
In asm/traps.h :-
do_double_fault : added under X86_64
sync_regs : added under X86_64
math_error : moved out from X86_32 as it is common for both 32 and 64 bit
smp_thermal_interrupt : added under X86_64
mce_threshold_interrupt : added under X86_64
math_emulate : moved from X86_32 to MATH_EMULATION
---
arch/x86/include/asm/traps.h | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 45dee28..d8a201b 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -46,6 +46,10 @@ dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long);
dotraplinkage void do_invalid_TSS(struct pt_regs *, long);
dotraplinkage void do_segment_not_present(struct pt_regs *, long);
dotraplinkage void do_stack_segment(struct pt_regs *, long);
+#ifdef CONFIG_X86_64
+dotraplinkage void do_double_fault(struct pt_regs *, long);
+asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *);
+#endif
dotraplinkage void do_general_protection(struct pt_regs *, long);
dotraplinkage void do_page_fault(struct pt_regs *, unsigned long);
dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long);
@@ -72,9 +76,14 @@ static inline int get_si_code(unsigned long condition)
extern int panic_on_unrecovered_nmi;
extern int kstack_depth_to_print;
-#ifdef CONFIG_X86_32
void math_error(void __user *);
+#ifdef CONFIG_X86_32
unsigned long patch_espfix_desc(unsigned long, unsigned long);
+#else
+asmlinkage void smp_thermal_interrupt(void);
+asmlinkage void mce_threshold_interrupt(void);
+#endif
+#ifndef CONFIG_MATH_EMULATION
asmlinkage void math_emulate(long);
#endif
--
1.5.5.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] x86: traps.c declare functions before they get used
2008-12-15 16:55 [PATCH] x86: traps.c declare functions before they get used Jaswinder Singh
@ 2008-12-16 20:19 ` Ingo Molnar
2008-12-17 4:28 ` Jaswinder Singh
0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2008-12-16 20:19 UTC (permalink / raw)
To: Jaswinder Singh; +Cc: LKML, Andi Kleen
* Jaswinder Singh <jaswinder@infradead.org> wrote:
> Signed-off-by: Jaswinder Singh <jaswinder@infradead.org>
>
> In asm/traps.h :-
> do_double_fault : added under X86_64
> sync_regs : added under X86_64
> math_error : moved out from X86_32 as it is common for both 32 and 64 bit
> smp_thermal_interrupt : added under X86_64
> mce_threshold_interrupt : added under X86_64
> math_emulate : moved from X86_32 to MATH_EMULATION
> ---
> arch/x86/include/asm/traps.h | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
> index 45dee28..d8a201b 100644
> --- a/arch/x86/include/asm/traps.h
> +++ b/arch/x86/include/asm/traps.h
> @@ -46,6 +46,10 @@ dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long);
> dotraplinkage void do_invalid_TSS(struct pt_regs *, long);
> dotraplinkage void do_segment_not_present(struct pt_regs *, long);
> dotraplinkage void do_stack_segment(struct pt_regs *, long);
> +#ifdef CONFIG_X86_64
> +dotraplinkage void do_double_fault(struct pt_regs *, long);
> +asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *);
> +#endif
> dotraplinkage void do_general_protection(struct pt_regs *, long);
> dotraplinkage void do_page_fault(struct pt_regs *, unsigned long);
> dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long);
> @@ -72,9 +76,14 @@ static inline int get_si_code(unsigned long condition)
> extern int panic_on_unrecovered_nmi;
> extern int kstack_depth_to_print;
>
> -#ifdef CONFIG_X86_32
> void math_error(void __user *);
> +#ifdef CONFIG_X86_32
> unsigned long patch_espfix_desc(unsigned long, unsigned long);
> +#else
> +asmlinkage void smp_thermal_interrupt(void);
> +asmlinkage void mce_threshold_interrupt(void);
> +#endif
> +#ifndef CONFIG_MATH_EMULATION
> asmlinkage void math_emulate(long);
> #endif
uhm, shouldnt that #ifndef CONFIG_MATH_EMULATION be #ifdef
CONFIG_MATH_EMULATION?
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] x86: traps.c declare functions before they get used
2008-12-16 20:19 ` Ingo Molnar
@ 2008-12-17 4:28 ` Jaswinder Singh
2008-12-18 14:33 ` Ingo Molnar
0 siblings, 1 reply; 5+ messages in thread
From: Jaswinder Singh @ 2008-12-17 4:28 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Jaswinder Singh, LKML, Andi Kleen
Hello Ingo,
On Wed, Dec 17, 2008 at 1:49 AM, Ingo Molnar <mingo@elte.hu> wrote:
>> +#ifndef CONFIG_MATH_EMULATION
>> asmlinkage void math_emulate(long);
>> #endif
>
> uhm, shouldnt that #ifndef CONFIG_MATH_EMULATION be #ifdef
> CONFIG_MATH_EMULATION?
>
Sorry, but it seems correct to me in traps case will be opposite.
If someone tries to access math_emulate() and MATH_EMULATION is not
defined then he will be trapped ;-)
Thank you,
Jaswinder Singh.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] x86: traps.c declare functions before they get used
2008-12-17 4:28 ` Jaswinder Singh
@ 2008-12-18 14:33 ` Ingo Molnar
2008-12-18 18:33 ` Jaswinder Singh
0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2008-12-18 14:33 UTC (permalink / raw)
To: Jaswinder Singh; +Cc: Jaswinder Singh, LKML, Andi Kleen
* Jaswinder Singh <jaswinderlinux@gmail.com> wrote:
> Hello Ingo,
>
> On Wed, Dec 17, 2008 at 1:49 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >> +#ifndef CONFIG_MATH_EMULATION
> >> asmlinkage void math_emulate(long);
> >> #endif
> >
> > uhm, shouldnt that #ifndef CONFIG_MATH_EMULATION be #ifdef
> > CONFIG_MATH_EMULATION?
> >
>
> Sorry, but it seems correct to me in traps case will be opposite.
>
> If someone tries to access math_emulate() and MATH_EMULATION is not
> defined then he will be trapped ;-)
you should build-test your patch with MATH_EMULATION enabled.
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] x86: traps.c declare functions before they get used
2008-12-18 14:33 ` Ingo Molnar
@ 2008-12-18 18:33 ` Jaswinder Singh
0 siblings, 0 replies; 5+ messages in thread
From: Jaswinder Singh @ 2008-12-18 18:33 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Jaswinder Singh, LKML, Andi Kleen
On Thu, 2008-12-18 at 15:33 +0100, Ingo Molnar wrote:
> you should build-test your patch with MATH_EMULATION enabled.
>
I am sorry for this mess. Now I tested on X86_32 with and without
MATH_EMULATION and also in X86_64. So here is new patch :
Subject: [PATCH] 86: traps.c declare functions before they get used
Impact: cleanup
In asm/traps.h :-
do_double_fault : added under X86_64
sync_regs : added under X86_64
math_error : moved out from X86_32 as it is common for both 32 and 64 bit
math_emulate : moved from X86_32 as it is common for both 32 and 64 bit
smp_thermal_interrupt : added under X86_64
mce_threshold_interrupt : added under X86_64
Signed-off-by: Jaswinder Singh <jaswinder@infradead.org>
---
arch/x86/include/asm/traps.h | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
index 45dee28..2ee0a3b 100644
--- a/arch/x86/include/asm/traps.h
+++ b/arch/x86/include/asm/traps.h
@@ -46,6 +46,10 @@ dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long);
dotraplinkage void do_invalid_TSS(struct pt_regs *, long);
dotraplinkage void do_segment_not_present(struct pt_regs *, long);
dotraplinkage void do_stack_segment(struct pt_regs *, long);
+#ifdef CONFIG_X86_64
+dotraplinkage void do_double_fault(struct pt_regs *, long);
+asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *);
+#endif
dotraplinkage void do_general_protection(struct pt_regs *, long);
dotraplinkage void do_page_fault(struct pt_regs *, unsigned long);
dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long);
@@ -72,10 +76,13 @@ static inline int get_si_code(unsigned long condition)
extern int panic_on_unrecovered_nmi;
extern int kstack_depth_to_print;
-#ifdef CONFIG_X86_32
void math_error(void __user *);
-unsigned long patch_espfix_desc(unsigned long, unsigned long);
asmlinkage void math_emulate(long);
+#ifdef CONFIG_X86_32
+unsigned long patch_espfix_desc(unsigned long, unsigned long);
+#else
+asmlinkage void smp_thermal_interrupt(void);
+asmlinkage void mce_threshold_interrupt(void);
#endif
#endif /* _ASM_X86_TRAPS_H */
--
1.5.5.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-12-18 18:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-15 16:55 [PATCH] x86: traps.c declare functions before they get used Jaswinder Singh
2008-12-16 20:19 ` Ingo Molnar
2008-12-17 4:28 ` Jaswinder Singh
2008-12-18 14:33 ` Ingo Molnar
2008-12-18 18:33 ` Jaswinder Singh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox