Skip to content

Commit

Permalink
gianfar: Remove redundant ops for do_tstamp from xmit()
Browse files Browse the repository at this point in the history
Timestamp BD status updates that can be merged into the
same "do_tstamp" block, no need for extra save/restore
to the BD area.  The code is more readable too.

Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Claudiu Manoil authored and David S. Miller committed Feb 24, 2016
1 parent 42f397a commit 48963b4
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions drivers/net/ethernet/freescale/gianfar.c
Original file line number Diff line number Diff line change
Expand Up @@ -2436,15 +2436,8 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
txbdp_tstamp = txbdp = next_txbd(txbdp, base,
tx_queue->tx_ring_size);

if (nr_frags == 0) {
if (unlikely(do_tstamp)) {
u32 lstatus_ts = be32_to_cpu(txbdp_tstamp->lstatus);

lstatus_ts |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT);
txbdp_tstamp->lstatus = cpu_to_be32(lstatus_ts);
} else {
lstatus |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT);
}
if (likely(!nr_frags)) {
lstatus |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT);
} else {
u32 lstatus_start = lstatus;

Expand Down Expand Up @@ -2488,8 +2481,11 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)

bufaddr = be32_to_cpu(txbdp_start->bufPtr);
bufaddr += fcb_len;

lstatus_ts |= BD_LFLAG(TXBD_READY) |
(skb_headlen(skb) - fcb_len);
if (!nr_frags)
lstatus_ts |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT);

txbdp_tstamp->bufPtr = cpu_to_be32(bufaddr);
txbdp_tstamp->lstatus = cpu_to_be32(lstatus_ts);
Expand Down

0 comments on commit 48963b4

Please sign in to comment.