aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2017-04-13 15:47:48 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2017-04-24 15:42:23 -0400
commit3fcc78340f3a9bef2be7ad54258b06e1f177d3fd (patch)
tree5b673462b84d01516da8e17847c851b6a0e91ccf
parentfe79018aa4c3af7d74e48b9a9b117da9fb6cf353 (diff)
mmc: cavium: Fix a shift wrapping bug
"dat" is a u64 and "shift" starts as 54 so this is a shift wrapping bug. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r--drivers/mmc/host/cavium.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c
index d89c2ebcad90..d89c011bbea8 100644
--- a/drivers/mmc/host/cavium.c
+++ b/drivers/mmc/host/cavium.c
@@ -733,7 +733,7 @@ static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq)
733 } 733 }
734 734
735 while (smi->consumed < smi->length && shift >= 0) { 735 while (smi->consumed < smi->length && shift >= 0) {
736 dat |= ((u8 *)smi->addr)[smi->consumed] << shift; 736 dat |= (u64)((u8 *)smi->addr)[smi->consumed] << shift;
737 bytes_xfered++; 737 bytes_xfered++;
738 smi->consumed++; 738 smi->consumed++;
739 shift -= 8; 739 shift -= 8;