aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lguest/x86
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-10-21 21:24:24 -0400
committerRusty Russell <rusty@rustcorp.com.au>2007-10-23 01:49:56 -0400
commit2d37f94a28170ca656438758fca577acb49a7932 (patch)
tree21049219a98d314a2c442293e512b74d879e6270 /drivers/lguest/x86
parent56ae43dfe233323683248a5c553bad7160db2fa5 (diff)
generalize lgread_u32/lgwrite_u32.
Jes complains that page table code still uses lgread_u32 even though it now uses general kernel pte types. The best thing to do is to generalize lgread_u32 and lgwrite_u32. This means we lose the efficiency of getuser(). We could potentially regain it if we used __copy_from_user instead of copy_from_user, but I'm not certain that our range check is equivalent to access_ok() on all platforms. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Jes Sorensen <jes@sgi.com>
Diffstat (limited to 'drivers/lguest/x86')
-rw-r--r--drivers/lguest/x86/core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index ef976ccb4192..9eed12d5a395 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -222,7 +222,7 @@ static int emulate_insn(struct lguest *lg)
222 return 0; 222 return 0;
223 223
224 /* Decoding x86 instructions is icky. */ 224 /* Decoding x86 instructions is icky. */
225 lgread(lg, &insn, physaddr, 1); 225 insn = lgread(lg, physaddr, u8);
226 226
227 /* 0x66 is an "operand prefix". It means it's using the upper 16 bits 227 /* 0x66 is an "operand prefix". It means it's using the upper 16 bits
228 of the eax register. */ 228 of the eax register. */
@@ -230,7 +230,7 @@ static int emulate_insn(struct lguest *lg)
230 shift = 16; 230 shift = 16;
231 /* The instruction is 1 byte so far, read the next byte. */ 231 /* The instruction is 1 byte so far, read the next byte. */
232 insnlen = 1; 232 insnlen = 1;
233 lgread(lg, &insn, physaddr + insnlen, 1); 233 insn = lgread(lg, physaddr + insnlen, u8);
234 } 234 }
235 235
236 /* We can ignore the lower bit for the moment and decode the 4 opcodes 236 /* We can ignore the lower bit for the moment and decode the 4 opcodes