diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2014-10-08 13:43:17 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-08 20:08:04 (GMT) |
commit | 9fef84780348bbc01b14c1a0f88440ee67cfddfe (patch) | |
tree | e0e89a8b21375e2718a89097174ec309549d4ff4 /drivers/net/ethernet/chelsio/cxgb4/sge.c | |
parent | 4567dc10934292a3171f98d28817d58127b73b72 (diff) | |
download | linux-9fef84780348bbc01b14c1a0f88440ee67cfddfe.tar.xz |
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>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/sge.c')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c index bb7851e..e8e90ce 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c @@ -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; |