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
fix typos using codespell utility
[dpdk.git]
/
drivers
/
net
/
sfc
/
sfc_rx.c
diff --git
a/drivers/net/sfc/sfc_rx.c
b/drivers/net/sfc/sfc_rx.c
index
56130b2
..
e19ef6d
100644
(file)
--- a/
drivers/net/sfc/sfc_rx.c
+++ b/
drivers/net/sfc/sfc_rx.c
@@
-122,10
+122,10
@@
sfc_efx_rx_qrefill(struct sfc_efx_rxq *rxq)
rxd = &rxq->sw_desc[id];
rxd->mbuf = m;
rxd = &rxq->sw_desc[id];
rxd->mbuf = m;
-
rte_mbuf_refcnt_set(m,
1);
+
SFC_ASSERT(rte_mbuf_refcnt_read(m) ==
1);
m->data_off = RTE_PKTMBUF_HEADROOM;
m->data_off = RTE_PKTMBUF_HEADROOM;
-
m->next = NULL
;
-
m->nb_segs = 1
;
+
SFC_ASSERT(m->next == NULL)
;
+
SFC_ASSERT(m->nb_segs == 1)
;
m->port = port_id;
addr[i] = rte_pktmbuf_mtophys(m);
m->port = port_id;
addr[i] = rte_pktmbuf_mtophys(m);
@@
-292,7
+292,7
@@
sfc_efx_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
if (desc_flags & EFX_PKT_CONT) {
/* The packet is scattered, more fragments to come */
scatter_pkt = m;
if (desc_flags & EFX_PKT_CONT) {
/* The packet is scattered, more fragments to come */
scatter_pkt = m;
- /* Futher fragments have no prefix */
+ /* Fu
r
ther fragments have no prefix */
prefix_size = 0;
continue;
}
prefix_size = 0;
continue;
}
@@
-529,6
+529,7
@@
sfc_rx_qflush(struct sfc_adapter *sa, unsigned int sw_index)
struct sfc_rxq *rxq;
unsigned int retry_count;
unsigned int wait_count;
struct sfc_rxq *rxq;
unsigned int retry_count;
unsigned int wait_count;
+ int rc;
rxq = sa->rxq_info[sw_index].rxq;
SFC_ASSERT(rxq->state & SFC_RXQ_STARTED);
rxq = sa->rxq_info[sw_index].rxq;
SFC_ASSERT(rxq->state & SFC_RXQ_STARTED);
@@
-541,8
+542,10
@@
sfc_rx_qflush(struct sfc_adapter *sa, unsigned int sw_index)
((rxq->state & SFC_RXQ_FLUSHED) == 0) &&
(retry_count < SFC_RX_QFLUSH_ATTEMPTS);
++retry_count) {
((rxq->state & SFC_RXQ_FLUSHED) == 0) &&
(retry_count < SFC_RX_QFLUSH_ATTEMPTS);
++retry_count) {
- if (efx_rx_qflush(rxq->common) != 0) {
- rxq->state |= SFC_RXQ_FLUSH_FAILED;
+ rc = efx_rx_qflush(rxq->common);
+ if (rc != 0) {
+ rxq->state |= (rc == EALREADY) ?
+ SFC_RXQ_FLUSHED : SFC_RXQ_FLUSH_FAILED;
break;
}
rxq->state &= ~SFC_RXQ_FLUSH_FAILED;
break;
}
rxq->state &= ~SFC_RXQ_FLUSH_FAILED;
@@
-577,7
+580,7
@@
sfc_rx_qflush(struct sfc_adapter *sa, unsigned int sw_index)
static int
sfc_rx_default_rxq_set_filter(struct sfc_adapter *sa, struct sfc_rxq *rxq)
{
static int
sfc_rx_default_rxq_set_filter(struct sfc_adapter *sa, struct sfc_rxq *rxq)
{
- boolean_t rss = (sa->rss_channels >
1
) ? B_TRUE : B_FALSE;
+ boolean_t rss = (sa->rss_channels >
0
) ? B_TRUE : B_FALSE;
struct sfc_port *port = &sa->port;
int rc;
struct sfc_port *port = &sa->port;
int rc;
@@
-930,7
+933,7
@@
sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
info.prefix_size = encp->enc_rx_prefix_size;
#if EFSYS_OPT_RX_SCALE
info.prefix_size = encp->enc_rx_prefix_size;
#if EFSYS_OPT_RX_SCALE
- if (sa->hash_support == EFX_RX_HASH_AVAILABLE)
+ if (sa->hash_support == EFX_RX_HASH_AVAILABLE
&& sa->rss_channels > 0
)
info.flags |= SFC_RXQ_FLAG_RSS_HASH;
#endif
info.flags |= SFC_RXQ_FLAG_RSS_HASH;
#endif
@@
-942,7
+945,7
@@
sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
info.mem_bar = sa->mem_bar.esb_base;
rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
info.mem_bar = sa->mem_bar.esb_base;
rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
- &
SFC
_DEV_TO_PCI(sa->eth_dev)->addr,
+ &
RTE_ETH
_DEV_TO_PCI(sa->eth_dev)->addr,
socket_id, &info, &rxq->dp);
if (rc != 0)
goto fail_dp_rx_qcreate;
socket_id, &info, &rxq->dp);
if (rc != 0)
goto fail_dp_rx_qcreate;
@@
-1052,7
+1055,7
@@
sfc_rx_rss_config(struct sfc_adapter *sa)
int rc = 0;
#if EFSYS_OPT_RX_SCALE
int rc = 0;
#if EFSYS_OPT_RX_SCALE
- if (sa->rss_channels >
1
) {
+ if (sa->rss_channels >
0
) {
rc = efx_rx_scale_mode_set(sa->nic, EFX_RX_HASHALG_TOEPLITZ,
sa->rss_hash_types, B_TRUE);
if (rc != 0)
rc = efx_rx_scale_mode_set(sa->nic, EFX_RX_HASHALG_TOEPLITZ,
sa->rss_hash_types, B_TRUE);
if (rc != 0)
@@
-1289,9
+1292,9
@@
sfc_rx_configure(struct sfc_adapter *sa)
#if EFSYS_OPT_RX_SCALE
sa->rss_channels = (dev_conf->rxmode.mq_mode == ETH_MQ_RX_RSS) ?
#if EFSYS_OPT_RX_SCALE
sa->rss_channels = (dev_conf->rxmode.mq_mode == ETH_MQ_RX_RSS) ?
- MIN(sa->rxq_count, EFX_MAXRSS) :
1
;
+ MIN(sa->rxq_count, EFX_MAXRSS) :
0
;
- if (sa->rss_channels >
1
) {
+ if (sa->rss_channels >
0
) {
for (sw_index = 0; sw_index < EFX_RSS_TBL_SIZE; ++sw_index)
sa->rss_tbl[sw_index] = sw_index % sa->rss_channels;
}
for (sw_index = 0; sw_index < EFX_RSS_TBL_SIZE; ++sw_index)
sa->rss_tbl[sw_index] = sw_index % sa->rss_channels;
}
@@
-1320,6
+1323,8
@@
sfc_rx_close(struct sfc_adapter *sa)
{
sfc_rx_fini_queues(sa, 0);
{
sfc_rx_fini_queues(sa, 0);
+ sa->rss_channels = 0;
+
rte_free(sa->rxq_info);
sa->rxq_info = NULL;
}
rte_free(sa->rxq_info);
sa->rxq_info = NULL;
}