mirror of https://gitee.com/openkylin/linux.git
cxgb4: potential shift wrapping bug
"cntxt_id" is an unsigned int but "udb" is a u64 so there is a potential shift wrapping bug here. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4567dc1093
commit
9fef847803
|
@ -2258,7 +2258,7 @@ static u64 udb_address(struct adapter *adap, unsigned int cntxt_id,
|
|||
(QUEUESPERPAGEPF1 - QUEUESPERPAGEPF0) * adap->fn);
|
||||
udb_density = 1 << ((qpp >> s_qpp) & QUEUESPERPAGEPF0_MASK);
|
||||
qpshift = PAGE_SHIFT - ilog2(udb_density);
|
||||
udb = cntxt_id << qpshift;
|
||||
udb = (u64)cntxt_id << qpshift;
|
||||
udb &= PAGE_MASK;
|
||||
page = udb / PAGE_SIZE;
|
||||
udb += (cntxt_id - (page * udb_density)) * SGE_UDB_SIZE;
|
||||
|
|
Loading…
Reference in New Issue