OSDN Git Service

net: enetc: use the skb variable directly in enetc_clean_tx_ring()
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 20 Oct 2021 17:42:20 +0000 (20:42 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 21 Oct 2021 22:35:55 +0000 (15:35 -0700)
The code checks whether the skb had one-step TX timestamping enabled, in
order to schedule the work item for emptying the priv->tx_skbs queue.

That code checks for "tx_swbd->skb" directly, when we already had a skb
retrieved using enetc_tx_swbd_get_skb(tx_swbd) - a TX software BD can
also hold an XDP_TX packet or an XDP frame. But since the direct tx_swbd
dereference is in an "if" block guarded by the non-NULL quality of
"skb", accessing "tx_swbd->skb" directly is not wrong, just confusing.

Just use the local variable named "skb".

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/enetc/enetc.c

index 082b94e..504e125 100644 (file)
@@ -831,8 +831,7 @@ static bool enetc_clean_tx_ring(struct enetc_bdr *tx_ring, int napi_budget)
                if (xdp_frame) {
                        xdp_return_frame(xdp_frame);
                } else if (skb) {
-                       if (unlikely(tx_swbd->skb->cb[0] &
-                                    ENETC_F_TX_ONESTEP_SYNC_TSTAMP)) {
+                       if (unlikely(skb->cb[0] & ENETC_F_TX_ONESTEP_SYNC_TSTAMP)) {
                                /* Start work to release lock for next one-step
                                 * timestamping packet. And send one skb in
                                 * tx_skbs queue if has.