On 2/10/2017 1:26 AM, Qiming Yang wrote: > This patch removed useless tx_flags in vlan insertion.
Overall this looks good, I wonder what was the initial intention of this code, understanding it helps to figure out if there is a hidden defect. This code not fixes a defect, but improves the code, is there any performance gain with this? If not, I am for deferring this to next release. > > Fixes: 4861cde46116 ("i40e: new poll mode driver") > > Signed-off-by: Qiming Yang <qiming.y...@intel.com> > --- > drivers/net/i40e/i40e_rxtx.c | 8 +------- > drivers/net/i40e/i40e_rxtx.h | 2 -- > 2 files changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c > index 608685f..b91cd70 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -1026,7 +1026,6 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf > **tx_pkts, uint16_t nb_pkts) > uint16_t nb_tx; > uint32_t td_cmd; > uint32_t td_offset; > - uint32_t tx_flags; > uint32_t td_tag; > uint64_t ol_flags; > uint16_t nb_used; > @@ -1050,7 +1049,6 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf > **tx_pkts, uint16_t nb_pkts) > td_cmd = 0; > td_tag = 0; > td_offset = 0; > - tx_flags = 0; > > tx_pkt = *tx_pkts++; > RTE_MBUF_PREFETCH_TO_FREE(txe->mbuf); > @@ -1097,12 +1095,8 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf > **tx_pkts, uint16_t nb_pkts) > > /* Descriptor based VLAN insertion */ > if (ol_flags & (PKT_TX_VLAN_PKT | PKT_TX_QINQ_PKT)) { > - tx_flags |= tx_pkt->vlan_tci << > - I40E_TX_FLAG_L2TAG1_SHIFT; > - tx_flags |= I40E_TX_FLAG_INSERT_VLAN; The I40E_TX_FLAG_INSERT_VLAN flag also seems used only here, and can be removed. Also I40E_TX_FLAG_CSUM and I40E_TX_FLAG_TSYN seems not used at all, understanding why they are introduced at first place can be useful. > td_cmd |= I40E_TX_DESC_CMD_IL2TAG1; > - td_tag = (tx_flags & I40E_TX_FLAG_L2TAG1_MASK) >> > - I40E_TX_FLAG_L2TAG1_SHIFT; > + td_tag = tx_pkt->vlan_tci; > } > > /* Always enable CRC offload insertion */ > diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h > index 9df8a56..3d4abdc 100644 > --- a/drivers/net/i40e/i40e_rxtx.h > +++ b/drivers/net/i40e/i40e_rxtx.h > @@ -38,8 +38,6 @@ > * 32 bits tx flags, high 16 bits for L2TAG1 (VLAN), > * low 16 bits for others. > */ > -#define I40E_TX_FLAG_L2TAG1_SHIFT 16 > -#define I40E_TX_FLAG_L2TAG1_MASK 0xffff0000 > #define I40E_TX_FLAG_CSUM ((uint32_t)(1 << 0)) > #define I40E_TX_FLAG_INSERT_VLAN ((uint32_t)(1 << 1)) > #define I40E_TX_FLAG_TSYN ((uint32_t)(1 << 2)) >