/* SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 2016-2018 Solarflare Communications Inc.
- * All rights reserved.
+ * Copyright(c) 2019-2020 Xilinx, Inc.
+ * Copyright(c) 2016-2019 Solarflare Communications Inc.
*
* This software was jointly developed between OKTET Labs (under contract
* for Solarflare) and Solarflare Communications, Inc.
.hw_fw_caps = 0,
},
.features = SFC_DP_RX_FEAT_INTR,
- .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM,
+ .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM |
+ DEV_RX_OFFLOAD_RSS_HASH,
.queue_offload_capa = DEV_RX_OFFLOAD_SCATTER,
.qsize_up_rings = sfc_efx_rx_qsize_up_rings,
.qcreate = sfc_efx_rx_qcreate,
sfc_warn(sa, "promiscuous mode will be disabled");
port->promisc = B_FALSE;
- rc = sfc_set_rx_mode(sa);
+ sa->eth_dev->data->promiscuous = 0;
+ rc = sfc_set_rx_mode_unchecked(sa);
if (rc != 0)
return rc;
sfc_warn(sa, "all-multicast mode will be disabled");
port->allmulti = B_FALSE;
- rc = sfc_set_rx_mode(sa);
+ sa->eth_dev->data->all_multicast = 0;
+ rc = sfc_set_rx_mode_unchecked(sa);
if (rc != 0)
return rc;
return 0;
fail_mac_filter_default_rxq_set:
+ sfc_rx_qflush(sa, sw_index);
sa->priv.dp_rx->qstop(rxq_info->dp, &rxq->evq->read_ptr);
+ rxq_info->state = SFC_RXQ_INITIALIZED;
fail_dp_qstart:
- sfc_rx_qflush(sa, sw_index);
+ efx_rx_qdestroy(rxq->common);
fail_rx_qcreate:
fail_bad_contig_block_size:
if (conf->rss_key != NULL) {
if (conf->rss_key_len != sizeof(rss->key)) {
- sfc_err(sa, "RSS key size is wrong (should be %lu)",
+ sfc_err(sa, "RSS key size is wrong (should be %zu)",
sizeof(rss->key));
return EINVAL;
}