From: Matthew Wilcox Date: Fri, 5 Oct 2007 19:57:06 +0000 (-0400) Subject: [SCSI] advansys: Fix bug in AdvLoadMicrocode X-Git-Tag: v3.12-rc1~22322^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=951b62c11e86acf8c55d9828aa8c921575023c29;p=kernel%2Fkernel-generic.git [SCSI] advansys: Fix bug in AdvLoadMicrocode buf[i] can be up to 0xfd, so doubling it and assigning the result to an unsigned char truncates the value. Just use an unsigned int instead; it's only a temporary. Signed-off-by: Matthew Wilcox Cc: Stable Tree Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 3c2d688..8591585 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c @@ -6439,7 +6439,7 @@ static int AdvLoadMicrocode(AdvPortAddr iop_base, unsigned char *buf, int size, i += 2; len += 2; } else { - unsigned char off = buf[i] * 2; + unsigned int off = buf[i] * 2; unsigned short word = (buf[off + 1] << 8) | buf[off]; AdvWriteWordAutoIncLram(iop_base, word); len += 2;