Commit 43fed4d4 authored by Rahul Lakkireddy's avatar Rahul Lakkireddy Committed by David S. Miller

cxgb4: dont touch blocked freelist bitmap after free

When adapter init fails, the blocked freelist bitmap is already freed
up and should not be touched. So, move the bitmap zeroing closer to
where it was successfully allocated. Also handle adapter init failure
unwind path immediately and avoid setting up RDMA memory windows.

Fixes: 5b377d11 ("cxgb4: Add debugfs facility to inject FL starvation")
Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 38d57551
...@@ -5068,6 +5068,7 @@ static int adap_init0(struct adapter *adap, int vpd_skip) ...@@ -5068,6 +5068,7 @@ static int adap_init0(struct adapter *adap, int vpd_skip)
ret = -ENOMEM; ret = -ENOMEM;
goto bye; goto bye;
} }
bitmap_zero(adap->sge.blocked_fl, adap->sge.egr_sz);
#endif #endif
params[0] = FW_PARAM_PFVF(CLIP_START); params[0] = FW_PARAM_PFVF(CLIP_START);
...@@ -6788,13 +6789,11 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -6788,13 +6789,11 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
setup_memwin(adapter); setup_memwin(adapter);
err = adap_init0(adapter, 0); err = adap_init0(adapter, 0);
#ifdef CONFIG_DEBUG_FS
bitmap_zero(adapter->sge.blocked_fl, adapter->sge.egr_sz);
#endif
setup_memwin_rdma(adapter);
if (err) if (err)
goto out_unmap_bar; goto out_unmap_bar;
setup_memwin_rdma(adapter);
/* configure SGE_STAT_CFG_A to read WC stats */ /* configure SGE_STAT_CFG_A to read WC stats */
if (!is_t4(adapter->params.chip)) if (!is_t4(adapter->params.chip))
t4_write_reg(adapter, SGE_STAT_CFG_A, STATSOURCE_T5_V(7) | t4_write_reg(adapter, SGE_STAT_CFG_A, STATSOURCE_T5_V(7) |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment