staging: ft1000: fix uninitialized return variable in request_code_segment
authorAdam Lee <adam8157@gmail.com>
Mon, 25 Nov 2013 07:07:36 +0000 (15:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Nov 2013 20:41:43 +0000 (12:41 -0800)
The return variable of request_code_segment() is used uninitialized if
the argument boot_case is false, this patch fixes it.

FYI, in ft1000_usb.h: STATUS_SUCCESS 0, and STATUS_FAILURE 0x1001.

Signed-off-by: Adam Lee <adam8157@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ft1000/ft1000-usb/ft1000_download.c

index 3c2b085e7990414c2fd143b20e5ddae3d9dcf48d..2c216a56891ac7b93888a654844ee37c1fec7789 100644 (file)
@@ -601,11 +601,11 @@ static int request_code_segment(struct ft1000_usb *ft1000dev, u16 **s_file,
                status = write_blk(ft1000dev, s_file, c_file, word_length);
                /*DEBUG("write_blk returned %d\n", status); */
        } else {
-               write_blk_fifo(ft1000dev, s_file, c_file, word_length);
+               status = write_blk_fifo(ft1000dev, s_file, c_file, word_length);
                if (ft1000dev->usbboot == 0)
                        ft1000dev->usbboot++;
                if (ft1000dev->usbboot == 1)
-                       ft1000_write_dpram16(ft1000dev,
+                       status |= ft1000_write_dpram16(ft1000dev,
                                        DWNLD_MAG1_PS_HDR_LOC, 0, 0);
        }
        return status;