From: Kevin O'Connor Date: Mon, 28 May 2012 22:31:39 +0000 (-0400) Subject: Set noinline on kbd.c interface functions that take stack variable pointers. X-Git-Tag: rel-1.7.1~44 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8ab4a7de12a2fc776822c82cc4233a37b35c40f3;p=seabios.git Set noinline on kbd.c interface functions that take stack variable pointers. Some versions of gcc have been found to inline these funcions and then cause the calling functions to use very large stack usage. Since these functions are called from 16bit mode, their stack space usage is very sensitive. Signed-off-by: Kevin O'Connor --- diff --git a/src/kbd.c b/src/kbd.c index 0aa8988..e9ea594 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -165,7 +165,7 @@ handle_1609(struct bregs *regs) } // GET KEYBOARD ID -static void +static void noinline handle_160a(struct bregs *regs) { u8 param[2]; @@ -231,7 +231,7 @@ handle_16XX(struct bregs *regs) warn_unimplemented(regs); } -static void +static void noinline set_leds(void) { u8 shift_flags = (GET_BDA(kbd_flag0) >> 4) & 0x07;