aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
diff options
context:
space:
mode:
authorRahul Lakkireddy <rahul.lakkireddy@chelsio.com>2017-10-24 19:28:26 +0530
committerDavid S. Miller <davem@davemloft.net>2017-10-26 17:31:28 +0900
commitacfdf7eabea4186a386ba5e656f0c739563cb1a5 (patch)
tree38da8217dc5a1c9c5f30ebe9d4117405a9d01bd2 /drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
parentMerge branch 'hns3-fixes' (diff)
downloadlinux-dev-acfdf7eabea4186a386ba5e656f0c739563cb1a5.tar.xz
linux-dev-acfdf7eabea4186a386ba5e656f0c739563cb1a5.zip
cxgb4: fix overflow in collecting IBQ and OBQ dump
Destination buffer already has offset added. So, don't add offset again. Fetch actual size of configured OBQ from hardware, instead of using hardcoded value. Fixes: 7c075ce221cf ("cxgb4: collect IBQ and OBQ dumps") Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
index 9d97080a9d17..59740ac7e46e 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.c
@@ -82,14 +82,28 @@ static u32 cxgb4_get_entity_length(struct adapter *adap, u32 entity)
len = CIM_IBQ_SIZE * 4 * sizeof(u32);
break;
case CUDBG_CIM_OBQ_ULP0:
+ len = cudbg_cim_obq_size(adap, 0);
+ break;
case CUDBG_CIM_OBQ_ULP1:
+ len = cudbg_cim_obq_size(adap, 1);
+ break;
case CUDBG_CIM_OBQ_ULP2:
+ len = cudbg_cim_obq_size(adap, 2);
+ break;
case CUDBG_CIM_OBQ_ULP3:
+ len = cudbg_cim_obq_size(adap, 3);
+ break;
case CUDBG_CIM_OBQ_SGE:
+ len = cudbg_cim_obq_size(adap, 4);
+ break;
case CUDBG_CIM_OBQ_NCSI:
+ len = cudbg_cim_obq_size(adap, 5);
+ break;
case CUDBG_CIM_OBQ_RXQ0:
+ len = cudbg_cim_obq_size(adap, 6);
+ break;
case CUDBG_CIM_OBQ_RXQ1:
- len = 6 * CIM_OBQ_SIZE * 4 * sizeof(u32);
+ len = cudbg_cim_obq_size(adap, 7);
break;
case CUDBG_EDC0:
value = t4_read_reg(adap, MA_TARGET_MEM_ENABLE_A);