OSDN Git Service

ravb: fix byte order for TX descriptor tag field lower bits
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Mon, 16 Jul 2018 12:19:27 +0000 (14:19 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Jul 2018 05:21:49 +0000 (14:21 +0900)
The wrong helper is used to swap the bytes when adding the lower bits of
the TX descriptors tag field in the shared ds_tagl variable. The
variable contains the DS[11:0] field and then the TAG[3:0] bits.

The mistake was highlighted by the sparse warning:

ravb_main.c:1622:31:    left side has type restricted __le16
ravb_main.c:1622:31:    right side has type unsigned short
ravb_main.c:1622:31: warning: invalid assignment: |=
ravb_main.c:1622:34: warning: cast to restricted __le16

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb_main.c

index a100bcc..f7e649c 100644 (file)
@@ -1623,7 +1623,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                /* TAG and timestamp required flag */
                skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
                desc->tagh_tsr = (ts_skb->tag >> 4) | TX_TSR;
-               desc->ds_tagl |= le16_to_cpu(ts_skb->tag << 12);
+               desc->ds_tagl |= cpu_to_le16(ts_skb->tag << 12);
        }
 
        skb_tx_timestamp(skb);