mmc: cavium: Fix a shift wrapping bug
Subsystems (3)
PATCH 1/1 mmc: cavium: Fix a shift wrapping bug
"dat" is a u64 and "shift" starts as 54 so this is a shift wrapping bug.
Fixes 8047c753f3d3 ("mmc: cavium: Add core MMC driver for Cavium SOCs")
Signed-off-by Dan Carpenter <[email protected]>
drivers/mmc/host/cavium.c +1 -1
@@ -733,7 +733,7 @@ static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq) }while (smi->consumed < smi->length && shift >=0 ) { - dat |= ((u8 *)smi->addr)[smi->consumed] << shift; + dat |= (u64)((u8 *)smi->addr)[smi->consumed] << shift; bytes_xfered++; smi->consumed++; shift -=8 ;
Ulf Hansson
AppliedQuoted 4 lines · Dan Carpenter
"dat" is a u64 and "shift" starts as 54 so this is a shift wrapping bug.
Fixes 8047c753f3d3 ("mmc: cavium: Add core MMC driver for Cavium SOCs")Signed-off-by Dan Carpenter <[email protected]>
Thanks, applied for next!
Kind regards
Uffe
Quoted 14 lines
drivers/mmc/host/cavium.c +1
-1@@ -733,7 +733,7 @@ static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq) }while (smi->consumed < smi->length && shift >=0 ) { - dat |= ((u8 *)smi->addr)[smi->consumed] << shift; + dat |= (u64)((u8 *)smi->addr)[smi->consumed] << shift; bytes_xfered++; smi->consumed++; shift -=8 ;