[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Microcode does not need to have the default size of 2000+48 bytes.



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1169045879 0
# Node ID e303a2f329ee6bdd935f3b80f322ce93efd1672b
# Parent  13db896ef324a325cffdccaeb7b57908c342d9ae
Microcode does not need to have the default size of 2000+48 bytes.
A corresponding patch has gone into Linux 2.6.19; this is the
port to Xen.

Signed-off-by: Kurt Garloff <kurt@xxxxxxxxxx>

Reference: Patch to linux kernel from Sep 27 2006
> # User Shaohua Li <shaohua.li@xxxxxxxxx>
> # Node ID 45898b908138b5d93c2cc7353f061ce54af145dc
> # Parent  f962eab7b82c9bf1a6da69571046e764f5128395
> [PATCH] x86 microcode: don't check the size
>
> IA32 manual says if micorcode update's size is 0, then the size is
> default size (2048 bytes). But this doesn't suggest all microcode
> update's size should be above 2048 bytes to me. We actually had a
> microcode update whose size is 1024 bytes. The patch just removed
> the check.
>
> Signed-off-by: Shaohua Li <shaohua.li@xxxxxxxxx>
> Cc: Tigran Aivazian <tigran@xxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxx>
>
> committer: Linus Torvalds <torvalds@xxxxxxxxxxx> 1159370778 -0700
---
 xen/arch/x86/microcode.c |    9 ++-------
 1 files changed, 2 insertions(+), 7 deletions(-)

diff -r 13db896ef324 -r e303a2f329ee xen/arch/x86/microcode.c
--- a/xen/arch/x86/microcode.c  Wed Jan 17 14:54:59 2007 +0000
+++ b/xen/arch/x86/microcode.c  Wed Jan 17 14:57:59 2007 +0000
@@ -249,14 +249,14 @@ static int find_matching_ucodes (void)
                }
 
                total_size = get_totalsize(&mc_header);
-               if ((cursor + total_size > user_buffer_size) || (total_size < 
DEFAULT_UCODE_TOTALSIZE)) {
+               if (cursor + total_size > user_buffer_size) {
                        printk(KERN_ERR "microcode: error! Bad data in 
microcode data file\n");
                        error = -EINVAL;
                        goto out;
                }
 
                data_size = get_datasize(&mc_header);
-               if ((data_size + MC_HEADER_SIZE > total_size) || (data_size < 
DEFAULT_UCODE_DATASIZE)) {
+               if (data_size + MC_HEADER_SIZE > total_size) {
                        printk(KERN_ERR "microcode: error! Bad data in 
microcode data file\n");
                        error = -EINVAL;
                        goto out;
@@ -459,11 +459,6 @@ int microcode_update(XEN_GUEST_HANDLE(vo
 {
        int ret;
 
-       if (len < DEFAULT_UCODE_TOTALSIZE) {
-               printk(KERN_ERR "microcode: not enough data\n");
-               return -EINVAL;
-       }
-
        if (len != (typeof(user_buffer_size))len) {
                printk(KERN_ERR "microcode: too much data\n");
                return -E2BIG;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.