[PATCH] fix modules oopsing in lguest guests

Previous thread: xconfig request by Randy Dunlap on Monday, September 24, 2007 - 12:12 am. (1 message)

Next thread: 2.6.23-rc7 - _random_ IRQ23 : nobody cared by Paul Rolland on Monday, September 24, 2007 - 2:33 am. (10 messages)
To: Linus Torvalds <torvalds@...>
Cc: lguest <lguest@...>, lkml - Kernel Mailing List <linux-kernel@...>
Date: Monday, September 24, 2007 - 1:57 am

The assembly templates for lguest guest patching are in the .init.text
section. This means that modules get patched with "cc cc cc cc" or
similar junk.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff -r 554f72e059aa drivers/lguest/lguest_asm.S
--- a/drivers/lguest/lguest_asm.S Thu Sep 13 16:56:44 2007 +1000
+++ b/drivers/lguest/lguest_asm.S Mon Sep 24 15:34:31 2007 +1000
@@ -22,8 +22,9 @@
jmp lguest_init

/*G:055 We create a macro which puts the assembler code between lgstart_ and
- * lgend_ markers. These templates end up in the .init.text section, so they
- * are discarded after boot. */
+ * lgend_ markers. These templates are put in the .text section: they can't be
+ * discarded after boot as we may need to patch modules, too. */
+.text
#define LGUEST_PATCH(name, insns...) \
lgstart_##name: insns; lgend_##name:; \
.globl lgstart_##name; .globl lgend_##name
@@ -34,7 +35,6 @@ LGUEST_PATCH(pushf, movl lguest_data+LGU
LGUEST_PATCH(pushf, movl lguest_data+LGUEST_DATA_irq_enabled, %eax)
/*:*/

-.text
/* These demark the EIP range where host should never deliver interrupts. */
.global lguest_noirq_start
.global lguest_noirq_end

-

Previous thread: xconfig request by Randy Dunlap on Monday, September 24, 2007 - 12:12 am. (1 message)

Next thread: 2.6.23-rc7 - _random_ IRQ23 : nobody cared by Paul Rolland on Monday, September 24, 2007 - 2:33 am. (10 messages)