public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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