|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [XEN] Change microcode_update function in
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 609b10b17bf005cc70ae331a46385bf7ad25845c
# Parent eee52c100996efd39fb3f9bc7b43c75808927f2a
[XEN] Change microcode_update function interface inside Xen.
Confine the knowledge that the buffer gets accessed without use of
proper guest handle accessors to a single file.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
xen/arch/x86/microcode.c | 11 ++++++++---
xen/arch/x86/platform_hypercall.c | 4 ++--
2 files changed, 10 insertions(+), 5 deletions(-)
diff -r eee52c100996 -r 609b10b17bf0 xen/arch/x86/microcode.c
--- a/xen/arch/x86/microcode.c Thu Oct 05 16:36:39 2006 +0100
+++ b/xen/arch/x86/microcode.c Thu Oct 05 16:38:30 2006 +0100
@@ -455,7 +455,7 @@ out:
return error;
}
-int microcode_update(void *buf, unsigned long len)
+int microcode_update(XEN_GUEST_HANDLE(void) buf, unsigned long len)
{
int ret;
@@ -464,10 +464,15 @@ int microcode_update(void *buf, unsigned
return -EINVAL;
}
+ if (len != (typeof(user_buffer_size))len) {
+ printk(KERN_ERR "microcode: too much data\n");
+ return -E2BIG;
+ }
+
mutex_lock(µcode_mutex);
- user_buffer = (void __user *) buf;
- user_buffer_size = (int) len;
+ user_buffer = buf.p;
+ user_buffer_size = len;
ret = do_microcode_update();
diff -r eee52c100996 -r 609b10b17bf0 xen/arch/x86/platform_hypercall.c
--- a/xen/arch/x86/platform_hypercall.c Thu Oct 05 16:36:39 2006 +0100
+++ b/xen/arch/x86/platform_hypercall.c Thu Oct 05 16:38:30 2006 +0100
@@ -104,8 +104,8 @@ long do_platform_op(XEN_GUEST_HANDLE(xen
case XENPF_microcode_update:
{
- extern int microcode_update(void *buf, unsigned long len);
- ret = microcode_update(op->u.microcode.data.p,
+ extern int microcode_update(XEN_GUEST_HANDLE(void), unsigned long len);
+ ret = microcode_update(op->u.microcode.data,
op->u.microcode.length);
}
break;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [XEN] Change microcode_update function interface inside Xen.,
Xen patchbot-unstable <=
|
|
|
|
|