git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/ena: fix Rx checksum errors statistics
[dpdk.git]
/
drivers
/
net
/
sfc
/
sfc_ef10_essb_rx.c
diff --git
a/drivers/net/sfc/sfc_ef10_essb_rx.c
b/drivers/net/sfc/sfc_ef10_essb_rx.c
index
81c8f7f
..
ccb6aea
100644
(file)
--- a/
drivers/net/sfc/sfc_ef10_essb_rx.c
+++ b/
drivers/net/sfc/sfc_ef10_essb_rx.c
@@
-123,14
+123,22
@@
static struct rte_mbuf *
sfc_ef10_essb_next_mbuf(const struct sfc_ef10_essb_rxq *rxq,
struct rte_mbuf *mbuf)
{
sfc_ef10_essb_next_mbuf(const struct sfc_ef10_essb_rxq *rxq,
struct rte_mbuf *mbuf)
{
- return (struct rte_mbuf *)((uintptr_t)mbuf + rxq->buf_stride);
+ struct rte_mbuf *m;
+
+ m = (struct rte_mbuf *)((uintptr_t)mbuf + rxq->buf_stride);
+ MBUF_RAW_ALLOC_CHECK(m);
+ return m;
}
static struct rte_mbuf *
sfc_ef10_essb_mbuf_by_index(const struct sfc_ef10_essb_rxq *rxq,
struct rte_mbuf *mbuf, unsigned int idx)
{
}
static struct rte_mbuf *
sfc_ef10_essb_mbuf_by_index(const struct sfc_ef10_essb_rxq *rxq,
struct rte_mbuf *mbuf, unsigned int idx)
{
- return (struct rte_mbuf *)((uintptr_t)mbuf + idx * rxq->buf_stride);
+ struct rte_mbuf *m;
+
+ m = (struct rte_mbuf *)((uintptr_t)mbuf + idx * rxq->buf_stride);
+ MBUF_RAW_ALLOC_CHECK(m);
+ return m;
}
static struct rte_mbuf *
}
static struct rte_mbuf *
@@
-324,7
+332,7
@@
sfc_ef10_essb_rx_get_pending(struct sfc_ef10_essb_rxq *rxq,
/* Buffers to be discarded have 0 in packet type */
if (unlikely(m->packet_type == 0)) {
/* Buffers to be discarded have 0 in packet type */
if (unlikely(m->packet_type == 0)) {
- rte_m
empool_put(rxq->refill_mb_pool,
m);
+ rte_m
buf_raw_free(
m);
goto next_buf;
}
goto next_buf;
}
@@
-479,6
+487,7
@@
sfc_ef10_essb_rx_pool_ops_supported(const char *pool)
static sfc_dp_rx_qsize_up_rings_t sfc_ef10_essb_rx_qsize_up_rings;
static int
sfc_ef10_essb_rx_qsize_up_rings(uint16_t nb_rx_desc,
static sfc_dp_rx_qsize_up_rings_t sfc_ef10_essb_rx_qsize_up_rings;
static int
sfc_ef10_essb_rx_qsize_up_rings(uint16_t nb_rx_desc,
+ struct sfc_dp_rx_hw_limits *limits,
struct rte_mempool *mb_pool,
unsigned int *rxq_entries,
unsigned int *evq_entries,
struct rte_mempool *mb_pool,
unsigned int *rxq_entries,
unsigned int *evq_entries,
@@
-505,11
+514,11
@@
sfc_ef10_essb_rx_qsize_up_rings(uint16_t nb_rx_desc,
nb_hw_rx_desc = RTE_MAX(SFC_DIV_ROUND_UP(nb_rx_desc,
mp_info.contig_block_size),
SFC_EF10_RX_WPTR_ALIGN + 1);
nb_hw_rx_desc = RTE_MAX(SFC_DIV_ROUND_UP(nb_rx_desc,
mp_info.contig_block_size),
SFC_EF10_RX_WPTR_ALIGN + 1);
- if (nb_hw_rx_desc <=
EFX_RXQ_MINNDESCS
) {
- *rxq_entries =
EFX_RXQ_MINNDESCS
;
+ if (nb_hw_rx_desc <=
limits->rxq_min_entries
) {
+ *rxq_entries =
limits->rxq_min_entries
;
} else {
*rxq_entries = rte_align32pow2(nb_hw_rx_desc);
} else {
*rxq_entries = rte_align32pow2(nb_hw_rx_desc);
- if (*rxq_entries >
EFX_RXQ_MAXNDESCS
)
+ if (*rxq_entries >
limits->rxq_max_entries
)
return EINVAL;
}
return EINVAL;
}
@@
-519,8
+528,8
@@
sfc_ef10_essb_rx_qsize_up_rings(uint16_t nb_rx_desc,
1 /* Rx error */ + 1 /* flush */ + 1 /* head-tail space */;
*evq_entries = rte_align32pow2(max_events);
1 /* Rx error */ + 1 /* flush */ + 1 /* head-tail space */;
*evq_entries = rte_align32pow2(max_events);
- *evq_entries = RTE_MAX(*evq_entries,
(unsigned int)EFX_EVQ_MINNEVS
);
- *evq_entries = RTE_MIN(*evq_entries,
(unsigned int)EFX_EVQ_MAXNEVS
);
+ *evq_entries = RTE_MAX(*evq_entries,
limits->evq_min_entries
);
+ *evq_entries = RTE_MIN(*evq_entries,
limits->evq_max_entries
);
/*
* May be even maximum event queue size is insufficient to handle
/*
* May be even maximum event queue size is insufficient to handle
@@
-687,7
+696,7
@@
sfc_ef10_essb_rx_qpurge(struct sfc_dp_rxq *dp_rxq)
m = sfc_ef10_essb_mbuf_by_index(rxq, rxd->first_mbuf,
rxq->block_size - rxq->left_in_completed);
while (rxq->left_in_completed > 0) {
m = sfc_ef10_essb_mbuf_by_index(rxq, rxd->first_mbuf,
rxq->block_size - rxq->left_in_completed);
while (rxq->left_in_completed > 0) {
- rte_m
empool_put(rxq->refill_mb_pool,
m);
+ rte_m
buf_raw_free(
m);
m = sfc_ef10_essb_next_mbuf(rxq, m);
rxq->left_in_completed--;
}
m = sfc_ef10_essb_next_mbuf(rxq, m);
rxq->left_in_completed--;
}