Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.4.19-pre4-ac4 /arch/i386/kernel/microcode.c

Filename:/arch/i386/kernel/microcode.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.4.19-pre5  2.4.19-pre4-ac3  2.4.19-pre4-ac2  2.4.19-pre4  2.4.19-pre3  2.4.19-pre2 
(Following) 2.4.19-pre6  2.4.19-pre7  2.4.19-pre8  2.4.19-pre9  2.4.19-pre10  2.4.19-rc1 

Location
[  2.4.19-pre4-ac4
  [  arch
    [  i386
      [  kernel
         o  microcode.c

Patch

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.19p4/arch/i386/kernel/microcode.c linux.19pre4-ac4/arch/i386/ke+
rnel/microcode.c
--- linux.19p4/arch/i386/kernel/microcode.c   Mon Mar 25 17:47:09 2002
+++ linux.19pre4-ac4/arch/i386/kernel/microcode.c   Tue Mar 26 18:31:38 2002
@@ -55,6 +55,8 @@
  *      Tigran Aivazian <tigran@veritas.com>,
  *      Serialize updates as required on HT processors due to speculative
  *      nature of implementation.
+ *   1.11   22 Mar 2001 Tigran Aivazian <tigran@veritas.com>
+ *      Fix the panic when writing zero-length microcode chunk.
  */
 
 #include <linux/init.h>
@@ -73,7 +75,7 @@
 
 static spinlock_t microcode_update_lock = SPIN_LOCK_UNLOCKED;
 
-#define MICROCODE_VERSION    "1.10"
+#define MICROCODE_VERSION    "1.11"
 
 MODULE_DESCRIPTION("Intel CPU (IA-32) microcode update driver");
 MODULE_AUTHOR("Tigran Aivazian <tigran@veritas.com>");
@@ -330,11 +332,15 @@
 {
    ssize_t ret;
 
-   if (len % sizeof(struct microcode) != 0) {
+   if (!len || len % sizeof(struct microcode) != 0) {
       printk(KERN_ERR "microcode: can only write in N*%d bytes units\n", 
          sizeof(struct microcode));
       return -EINVAL;
    }
+   if ((len >> PAGE_SHIFT) > num_physpages) {
+      printk(KERN_ERR "microcode: too much data (max %d pages)\n", num_physpages);
+      return -EINVAL;
+   }
    down_write(µcode_rwsem);
    if (!mc_applied) {
       mc_applied = kmalloc(smp_num_cpus*sizeof(struct microcode),


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.