aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ixl
diff options
context:
space:
mode:
authorSean Bruno <sbruno@FreeBSD.org>2018-06-19 15:55:21 +0000
committerSean Bruno <sbruno@FreeBSD.org>2018-06-19 15:55:21 +0000
commitd6c579b29f8d288377f8954349c07a7b34692307 (patch)
tree477498b9bf94011eb35dfb3c2c818f9d222823cb /sys/dev/ixl
parent80eb81f6f07098f69bb577ec86d6593ca98c6ebb (diff)
downloadsrc-d6c579b29f8d288377f8954349c07a7b34692307.tar.gz
src-d6c579b29f8d288377f8954349c07a7b34692307.zip
Remove "diff" line indicator. Next to see if this code works or not.
Submitted by: mmacy Sponsored by: Limelight Networks
Notes
Notes: svn path=/head/; revision=335372
Diffstat (limited to 'sys/dev/ixl')
-rw-r--r--sys/dev/ixl/ixlvc.c82
1 files changed, 40 insertions, 42 deletions
diff --git a/sys/dev/ixl/ixlvc.c b/sys/dev/ixl/ixlvc.c
index aabce14935c4..12a21ba35933 100644
--- a/sys/dev/ixl/ixlvc.c
+++ b/sys/dev/ixl/ixlvc.c
@@ -386,9 +386,9 @@ ixlv_configure_queues(struct ixlv_sc *sc)
{
device_t dev = sc->dev;
struct ixl_vsi *vsi = &sc->vsi;
-+ if_softc_ctx_t scctx = iflib_get_softc_ctx(vsi->ctx);
-+ struct ixl_tx_queue *tx_que = vsi->tx_queues;
-+ struct ixl_rx_queue *rx_que = vsi->rx_queues;
+ if_softc_ctx_t scctx = iflib_get_softc_ctx(vsi->ctx);
+ struct ixl_tx_queue *tx_que = vsi->tx_queues;
+ struct ixl_rx_queue *rx_que = vsi->rx_queues;
struct tx_ring *txr;
struct rx_ring *rxr;
int len, pairs;
@@ -396,9 +396,9 @@ ixlv_configure_queues(struct ixlv_sc *sc)
struct virtchnl_vsi_queue_config_info *vqci;
struct virtchnl_queue_pair_info *vqpi;
-+ /* XXX: Linux PF driver wants matching ids in each tx/rx struct, so both TX/RX
-+ * queues of a pair need to be configured */
-+ pairs = max(vsi->num_tx_queues, vsi->num_rx_queues);
+ /* XXX: Linux PF driver wants matching ids in each tx/rx struct, so both TX/RX
+ * queues of a pair need to be configured */
+ pairs = max(vsi->num_tx_queues, vsi->num_rx_queues);
len = sizeof(struct virtchnl_vsi_queue_config_info) +
(sizeof(struct virtchnl_queue_pair_info) * pairs);
vqci = malloc(len, M_DEVBUF, M_NOWAIT | M_ZERO);
@@ -413,24 +413,24 @@ ixlv_configure_queues(struct ixlv_sc *sc)
/* Size check is not needed here - HW max is 16 queue pairs, and we
* can fit info for 31 of them into the AQ buffer before it overflows.
*/
-+ for (int i = 0; i < pairs; i++, tx_que++, rx_que++, vqpi++) {
-+ txr = &tx_que->txr;
-+ rxr = &rx_que->rxr;
-+
+ for (int i = 0; i < pairs; i++, tx_que++, rx_que++, vqpi++) {
+ txr = &tx_que->txr;
+ rxr = &rx_que->rxr;
+
vqpi->txq.vsi_id = vqci->vsi_id;
vqpi->txq.queue_id = i;
-+ vqpi->txq.ring_len = scctx->isc_ntxd[0];
-+ vqpi->txq.dma_ring_addr = txr->tx_paddr;
+ vqpi->txq.ring_len = scctx->isc_ntxd[0];
+ vqpi->txq.dma_ring_addr = txr->tx_paddr;
/* Enable Head writeback */
vqpi->txq.headwb_enabled = 0;
vqpi->txq.dma_headwb_addr = 0;
vqpi->rxq.vsi_id = vqci->vsi_id;
vqpi->rxq.queue_id = i;
-+ vqpi->rxq.ring_len = scctx->isc_nrxd[0];
-+ vqpi->rxq.dma_ring_addr = rxr->rx_paddr;
-+ vqpi->rxq.max_pkt_size = scctx->isc_max_frame_size;
-+ // TODO: Get this value from iflib, somehow
+ vqpi->rxq.ring_len = scctx->isc_nrxd[0];
+ vqpi->rxq.dma_ring_addr = rxr->rx_paddr;
+ vqpi->rxq.max_pkt_size = scctx->isc_max_frame_size;
+ // TODO: Get this value from iflib, somehow
vqpi->rxq.databuffer_size = rxr->mbuf_sz;
vqpi->rxq.splithdr_enabled = 0;
}
@@ -451,8 +451,8 @@ ixlv_enable_queues(struct ixlv_sc *sc)
struct virtchnl_queue_select vqs;
vqs.vsi_id = sc->vsi_res->vsi_id;
-+ /* XXX: In Linux PF, as long as neither of these is 0,
-+ * every queue in VF VSI is enabled. */
+ /* XXX: In Linux PF, as long as neither of these is 0,
+ * every queue in VF VSI is enabled. */
vqs.tx_queues = (1 << sc->vsi_res->num_queue_pairs) - 1;
vqs.rx_queues = vqs.tx_queues;
ixlv_send_pf_msg(sc, VIRTCHNL_OP_ENABLE_QUEUES,
@@ -470,8 +470,8 @@ ixlv_disable_queues(struct ixlv_sc *sc)
struct virtchnl_queue_select vqs;
vqs.vsi_id = sc->vsi_res->vsi_id;
-+ /* XXX: In Linux PF, as long as neither of these is 0,
-+ * every queue in VF VSI is disabled. */
+ /* XXX: In Linux PF, as long as neither of these is 0,
+ * every queue in VF VSI is disabled. */
vqs.tx_queues = (1 << sc->vsi_res->num_queue_pairs) - 1;
vqs.rx_queues = vqs.tx_queues;
ixlv_send_pf_msg(sc, VIRTCHNL_OP_DISABLE_QUEUES,
@@ -490,29 +490,29 @@ ixlv_map_queues(struct ixlv_sc *sc)
struct virtchnl_irq_map_info *vm;
int i, q, len;
struct ixl_vsi *vsi = &sc->vsi;
-+ struct ixl_rx_queue *rx_que = vsi->rx_queues;
-+ if_softc_ctx_t scctx = vsi->shared;
-+ device_t dev = sc->dev;
-+
-+ // XXX: What happens if we only get 1 MSI-X vector?
-+ MPASS(scctx->isc_vectors > 1);
+ struct ixl_rx_queue *rx_que = vsi->rx_queues;
+ if_softc_ctx_t scctx = vsi->shared;
+ device_t dev = sc->dev;
+
+ // XXX: What happens if we only get 1 MSI-X vector?
+ MPASS(scctx->isc_vectors > 1);
/* How many queue vectors, adminq uses one */
-+ // XXX: How do we know how many interrupt vectors we have?
-+ q = scctx->isc_vectors - 1;
+ // XXX: How do we know how many interrupt vectors we have?
+ q = scctx->isc_vectors - 1;
len = sizeof(struct virtchnl_irq_map_info) +
-+ (scctx->isc_vectors * sizeof(struct i40e_virtchnl_vector_map));
+ (scctx->isc_vectors * sizeof(struct i40e_virtchnl_vector_map));
vm = malloc(len, M_DEVBUF, M_NOWAIT);
if (!vm) {
-+ device_printf(dev, "%s: unable to allocate memory\n", __func__);
+ device_printf(dev, "%s: unable to allocate memory\n", __func__);
ixl_vc_schedule_retry(&sc->vc_mgr);
return;
}
-+ vm->num_vectors = scctx->isc_vectors;
+ vm->num_vectors = scctx->isc_vectors;
/* Queue vectors first */
-+ for (i = 0; i < q; i++, rx_que++) {
+ for (i = 0; i < q; i++, rx_que++) {
vm->vecmap[i].vsi_id = sc->vsi_res->vsi_id;
vm->vecmap[i].vector_id = i + 1; /* first is adminq */
// vm->vecmap[i].txq_map = (1 << que->me);
@@ -890,12 +890,12 @@ void
ixlv_set_rss_hena(struct ixlv_sc *sc)
{
struct virtchnl_rss_hena hena;
-+ struct i40e_hw *hw = &sc->hw;
+ struct i40e_hw *hw = &sc->hw;
-+ if (hw->mac.type == I40E_MAC_X722_VF)
-+ hena.hena = IXL_DEFAULT_RSS_HENA_X722;
-+ else
-+ hena.hena = IXL_DEFAULT_RSS_HENA_XL710;
+ if (hw->mac.type == I40E_MAC_X722_VF)
+ hena.hena = IXL_DEFAULT_RSS_HENA_X722;
+ else
+ hena.hena = IXL_DEFAULT_RSS_HENA_XL710;
ixlv_send_pf_msg(sc, VIRTCHNL_OP_SET_RSS_HENA,
(u8 *)&hena, sizeof(hena));
@@ -931,9 +931,9 @@ ixlv_config_rss_lut(struct ixlv_sc *sc)
* num_queues.)
*/
que_id = rss_get_indirection_to_bucket(i);
-+ que_id = que_id % sc->vsi.num_rx_queues;
+ que_id = que_id % sc->vsi.num_rx_queues;
#else
-+ que_id = i % sc->vsi.num_rx_queues;
+ que_id = i % sc->vsi.num_rx_queues;
#endif
lut = que_id & IXL_RSS_VSI_LUT_ENTRY_MASK;
rss_lut_msg->lut[i] = lut;
@@ -980,9 +980,7 @@ ixlv_vc_completion(struct ixlv_sc *sc,
case VIRTCHNL_EVENT_RESET_IMPENDING:
device_printf(dev, "PF initiated reset!\n");
sc->init_state = IXLV_RESET_PENDING;
-+ // mtx_unlock(&sc->mtx);
-+ ixlv_if_init(sc->vsi.ctx);
-+ // mtx_lock(&sc->mtx);
+ ixlv_if_init(sc->vsi.ctx);
break;
default:
device_printf(dev, "%s: Unknown event %d from AQ\n",