Thanks, can you save this as p2.patch
:
diff --git a/aq_nic.c b/aq_nic.c
index e9cbaf4..5782687 100644
--- a/aq_nic.c
+++ b/aq_nic.c
@@ -426,8 +426,11 @@ int aq_nic_init(struct aq_nic_s *self)
aq_phy_disable_ptp(self->aq_hw);
}
+ pr_info("self->aq_vecs = %d\n", (int) self->aq_vecs);
+
for (i = 0U; i < self->aq_vecs; i++) {
aq_vec = self->aq_vec[i];
+ pr_info("aq_vec_ring_alloc(i=%u)\n", i);
err = aq_vec_ring_alloc(aq_vec, self, i,
aq_nic_get_cfg(self));
if (err)
diff --git a/aq_ring.c b/aq_ring.c
index 6a226b4..3f23583 100644
--- a/aq_ring.c
+++ b/aq_ring.c
@@ -556,7 +556,7 @@ int aq_ring_rx_fill(struct aq_ring_s *self)
for (i = aq_ring_avail_dx(self); i--;
self->sw_tail = aq_ring_next_dx(self, self->sw_tail)) {
- pr_info("i = %d, self->sw_tail = %u\n", i, self->sw_tail);
+ pr_debug("i = %d, self->sw_tail = %u\n", i, self->sw_tail);
buff = &self->buff_ring[self->sw_tail];
WARN_IF(!buff);
diff --git a/aq_vec.c b/aq_vec.c
index d94d5ea..64557a3 100644
--- a/aq_vec.c
+++ b/aq_vec.c
@@ -138,6 +138,10 @@ int aq_vec_ring_alloc(struct aq_vec_s *self, struct aq_nic_s *aq_nic,
unsigned int i = 0U;
int err = 0;
+ pr_info("self->tx_rings = %d\n", (int) self->tx_rings);
+ pr_info("self->rx_rings = %d\n", (int) self->rx_rings);
+ pr_info("aq_nic_cfg->tcs = %d\n", (int) aq_nic_cfg->tcs);
+
for (i = 0; i < aq_nic_cfg->tcs; ++i) {
const unsigned int idx_ring = AQ_NIC_CFG_TCVEC2RING(aq_nic_cfg,
i, idx);
@@ -150,6 +154,7 @@ int aq_vec_ring_alloc(struct aq_vec_s *self, struct aq_nic_s *aq_nic,
}
++self->tx_rings;
+ pr_info("self->tx_rings -> %d\n", (int) self->tx_rings);
aq_nic_set_tx_ring(aq_nic, idx_ring, ring);
@@ -161,6 +166,7 @@ int aq_vec_ring_alloc(struct aq_vec_s *self, struct aq_nic_s *aq_nic,
}
++self->rx_rings;
+ pr_info("self->tx_rings -> %d\n", (int) self->rx_rings);
}
err_exit:
@@ -189,11 +195,16 @@ int aq_vec_init(struct aq_vec_s *self, const struct aq_hw_ops *aq_hw_ops,
WARN_IF(!self->ring);
pr_info("self->tx_rings = %u\n", self->tx_rings);
+ pr_info("self->rx_rings = %u\n", self->rx_rings);
+
+ WARN_IF(self->tx_rings != self->rx_rings);
for (i = 0U, ring = self->ring[0];
self->tx_rings > i; ++i, ring = self->ring[i]) {
WARN_IF(!ring);
+
+ pr_info("aq_ring_init(self->ring[i=%u][TX])\n", i);
err = aq_ring_init(&ring[AQ_VEC_TX_ID], ATL_RING_TX);
if (err < 0)
goto err_exit;
@@ -204,6 +215,8 @@ int aq_vec_init(struct aq_vec_s *self, const struct aq_hw_ops *aq_hw_ops,
if (err < 0)
goto err_exit;
+
+ pr_info("aq_ring_init(self->ring[i=%u][RX])\n", i);
err = aq_ring_init(&ring[AQ_VEC_RX_ID], ATL_RING_RX);
if (err < 0)
goto err_exit;
@@ -308,11 +321,18 @@ void aq_vec_ring_free(struct aq_vec_s *self)
if (!self)
goto err_exit;
+ pr_info("self->tx_rings = %u\n", self->tx_rings);
+ pr_info("self->rx_rings = %u\n", self->rx_rings);
+
for (i = 0U, ring = self->ring[0];
self->tx_rings > i; ++i, ring = self->ring[i]) {
+
+ pr_info("aq_ring_free(self->ring[i=%u][TX])\n", i);
aq_ring_free(&ring[AQ_VEC_TX_ID]);
- if (i < self->rx_rings)
+ if (i < self->rx_rings) {
+ pr_info("aq_ring_free(self->ring[i=%u][RX])\n", i);
aq_ring_free(&ring[AQ_VEC_RX_ID]);
+ }
}
self->tx_rings = 0;
and apply it using patch -p1 < p2.patch
and do another test?