[08/13] net/ionic: inline queue space function

Message ID 20210118203508.1332-9-aboyer@pensando.io (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/ionic: fixes and optimizations |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Andrew Boyer Jan. 18, 2021, 8:35 p.m. UTC
  This is a hot-path function.
Remove ionic_q_has_space() while here.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>
---
 drivers/net/ionic/ionic_dev.c | 21 +--------------------
 drivers/net/ionic/ionic_dev.h | 15 +++++++++++++--
 2 files changed, 14 insertions(+), 22 deletions(-)
  

Patch

diff --git a/drivers/net/ionic/ionic_dev.c b/drivers/net/ionic/ionic_dev.c
index fcb3df482a..e847741632 100644
--- a/drivers/net/ionic/ionic_dev.c
+++ b/drivers/net/ionic/ionic_dev.c
@@ -474,25 +474,6 @@  ionic_q_post(struct ionic_queue *q, bool ring_doorbell, desc_cb cb,
 		ionic_q_flush(q);
 }
 
-uint32_t
-ionic_q_space_avail(struct ionic_queue *q)
-{
-	uint32_t avail = q->tail_idx;
-
-	if (q->head_idx >= avail)
-		avail += q->num_descs - q->head_idx - 1;
-	else
-		avail -= q->head_idx + 1;
-
-	return avail;
-}
-
-bool
-ionic_q_has_space(struct ionic_queue *q, uint32_t want)
-{
-	return ionic_q_space_avail(q) >= want;
-}
-
 void
 ionic_q_service(struct ionic_queue *q, uint32_t cq_desc_index,
 		uint32_t stop_index, void *service_cb_arg)
@@ -561,7 +542,7 @@  ionic_adminq_post(struct ionic_lif *lif, struct ionic_admin_ctx *ctx)
 
 	rte_spinlock_lock(&lif->adminq_lock);
 
-	if (!ionic_q_has_space(adminq, 1)) {
+	if (ionic_q_space_avail(adminq) < 1) {
 		err = -ENOSPC;
 		goto err_out;
 	}
diff --git a/drivers/net/ionic/ionic_dev.h b/drivers/net/ionic/ionic_dev.h
index 55a56434fd..8847d6cad4 100644
--- a/drivers/net/ionic/ionic_dev.h
+++ b/drivers/net/ionic/ionic_dev.h
@@ -256,11 +256,22 @@  void ionic_q_map(struct ionic_queue *q, void *base, rte_iova_t base_pa);
 void ionic_q_sg_map(struct ionic_queue *q, void *base, rte_iova_t base_pa);
 void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, desc_cb cb,
 	void *cb_arg);
-uint32_t ionic_q_space_avail(struct ionic_queue *q);
-bool ionic_q_has_space(struct ionic_queue *q, uint32_t want);
 void ionic_q_service(struct ionic_queue *q, uint32_t cq_desc_index,
 	uint32_t stop_index, void *service_cb_arg);
 
+static inline uint32_t
+ionic_q_space_avail(struct ionic_queue *q)
+{
+	uint32_t avail = q->tail_idx;
+
+	if (q->head_idx >= avail)
+		avail += q->num_descs - q->head_idx - 1;
+	else
+		avail -= q->head_idx + 1;
+
+	return avail;
+}
+
 static inline void
 ionic_q_flush(struct ionic_queue *q)
 {