2004-11-17 13:47:31

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH] trivial, uninline do_trap(), remove get_cr2()

Uninlining do_trap() saves 544 bytes in traps.o.
get_cr2() seems to be unused, remove it.

Signed-off-by: Oleg Nesterov <[email protected]>

--- 2.6.10-rc2/arch/i386/kernel/traps.c~ Tue Nov 16 14:13:08 2004
+++ 2.6.10-rc2/arch/i386/kernel/traps.c Wed Nov 17 16:47:41 2004
@@ -358,16 +358,7 @@ static inline void die_if_kernel(const c
die(str, regs, err);
}

-static inline unsigned long get_cr2(void)
-{
- unsigned long address;
-
- /* get the address */
- __asm__("movl %%cr2,%0":"=r" (address));
- return address;
-}
-
-static inline void do_trap(int trapnr, int signr, char *str, int vm86,
+static void do_trap(int trapnr, int signr, char *str, int vm86,
struct pt_regs * regs, long error_code, siginfo_t *info)
{
if (regs->eflags & VM_MASK) {


2004-11-17 17:27:15

by Randy.Dunlap

[permalink] [raw]
Subject: Re: [PATCH] trivial, uninline do_trap(), remove get_cr2()

Oleg Nesterov wrote:
> Uninlining do_trap() saves 544 bytes in traps.o.
> get_cr2() seems to be unused, remove it.
>
> Signed-off-by: Oleg Nesterov <[email protected]>
>
> --- 2.6.10-rc2/arch/i386/kernel/traps.c~ Tue Nov 16 14:13:08 2004
> +++ 2.6.10-rc2/arch/i386/kernel/traps.c Wed Nov 17 16:47:41 2004
> @@ -358,16 +358,7 @@ static inline void die_if_kernel(const c
> die(str, regs, err);
> }
>
> -static inline unsigned long get_cr2(void)
> -{
> - unsigned long address;
> -
> - /* get the address */
> - __asm__("movl %%cr2,%0":"=r" (address));
> - return address;
> -}

Looks like it can be removed from arch/x86_64/kernel/traps.c also.

--
~Randy