lkml.org 
[lkml]   [2006]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 14/23] x86 microcode: dont check the size
    -stable review patch.  If anyone has any objections, please let us know.
    ------------------

    From: Shaohua Li <shaohua.li@intel.com>

    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 to 2.6.18 by Daniel Drake.

    Signed-off-by: Daniel Drake <dsd@gentoo.org>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>
    ---
    arch/i386/kernel/microcode.c | 9 ++-------
    1 file changed, 2 insertions(+), 7 deletions(-)

    --- linux-2.6.18.4.orig/arch/i386/kernel/microcode.c
    +++ linux-2.6.18.4/arch/i386/kernel/microcode.c
    @@ -250,14 +250,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;
    @@ -460,11 +460,6 @@ static ssize_t microcode_write (struct f
    {
    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;
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-11-29 23:11    [W:3.150 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site