]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86 microcode: don't check the size
authorShaohua Li <shaohua.li@intel.com>
Mon, 23 Apr 2007 23:25:26 +0000 (01:25 +0200)
committerAdrian Bunk <bunk@stusta.de>
Mon, 23 Apr 2007 23:25:26 +0000 (01:25 +0200)
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.

Backported by Daniel Drake.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
arch/i386/kernel/microcode.c

index 5390b521aca09f83f2d5c1164f152f961bac5a71..a408fbd72a99a03446daed8e8ecac7b501ea8cb3 100644 (file)
@@ -233,14 +233,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;
@@ -437,11 +437,6 @@ static ssize_t microcode_write (struct file *file, const char __user *buf, size_
 {
        ssize_t ret;
 
-       if (len < DEFAULT_UCODE_TOTALSIZE) {
-               printk(KERN_ERR "microcode: not enough data\n"); 
-               return -EINVAL;
-       }
-
        if ((len >> PAGE_SHIFT) > num_physpages) {
                printk(KERN_ERR "microcode: too much data (max %ld pages)\n", num_physpages);
                return -EINVAL;