From 7a4d44a639c99c8350cf738e40e7ae45e58f5960 Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko Date: Mon, 20 Mar 2017 10:15:16 +0000 Subject: [PATCH] net/sfc: make TSO a datapath-dependent feature Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc_dp_tx.h | 1 + drivers/net/sfc/sfc_tx.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/sfc/sfc_dp_tx.h b/drivers/net/sfc/sfc_dp_tx.h index 1a6d6c1492..c93932e97e 100644 --- a/drivers/net/sfc/sfc_dp_tx.h +++ b/drivers/net/sfc/sfc_dp_tx.h @@ -118,6 +118,7 @@ struct sfc_dp_tx { unsigned int features; #define SFC_DP_TX_FEAT_VLAN_INSERT 0x1 +#define SFC_DP_TX_FEAT_TSO 0x2 sfc_dp_tx_qcreate_t *qcreate; sfc_dp_tx_qdestroy_t *qdestroy; sfc_dp_tx_qstart_t *qstart; diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c index 9beb6f3e6c..1979e1fafe 100644 --- a/drivers/net/sfc/sfc_tx.c +++ b/drivers/net/sfc/sfc_tx.c @@ -293,6 +293,9 @@ sfc_tx_init(struct sfc_adapter *sa) goto fail_tx_dma_desc_boundary; } + if (~sa->dp_tx->features & SFC_DP_TX_FEAT_TSO) + sa->tso = B_FALSE; + rc = sfc_tx_check_mode(sa, &dev_conf->txmode); if (rc != 0) goto fail_check_mode; @@ -929,7 +932,8 @@ struct sfc_dp_tx sfc_efx_tx = { .type = SFC_DP_TX, .hw_fw_caps = 0, }, - .features = SFC_DP_TX_FEAT_VLAN_INSERT, + .features = SFC_DP_TX_FEAT_VLAN_INSERT | + SFC_DP_TX_FEAT_TSO, .qcreate = sfc_efx_tx_qcreate, .qdestroy = sfc_efx_tx_qdestroy, .qstart = sfc_efx_tx_qstart, -- 2.20.1