diff options
author | Y.b. Lu <yangbo.lu@nxp.com> | 2019-05-27 03:55:20 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-27 10:12:08 -0700 |
commit | cec4f328c929f72ad634e8f385b589bd6eac80e5 (patch) | |
tree | c2349763dc8a60a783639ebbae9ded1a80b0383e /drivers/net/ethernet/freescale | |
parent | e9588eb9316ec3c6212ea6e6c31e2d0d91d67c2f (diff) |
enetc: fix le32/le16 degrading to integer warnings
Fix blow sparse warning introduced by a previous patch.
- restricted __le32 degrades to integer
- restricted __le16 degrades to integer
Fixes: d39823121911 ("enetc: add hardware timestamping support")
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r-- | drivers/net/ethernet/freescale/enetc/enetc.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index d2ace299bed0..79bbc86abe77 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -307,13 +307,14 @@ static int enetc_bd_ready_count(struct enetc_bdr *tx_ring, int ci) static void enetc_get_tx_tstamp(struct enetc_hw *hw, union enetc_tx_bd *txbd, u64 *tstamp) { - u32 lo, hi; + u32 lo, hi, tstamp_lo; lo = enetc_rd(hw, ENETC_SICTR0); hi = enetc_rd(hw, ENETC_SICTR1); - if (lo <= txbd->wb.tstamp) + tstamp_lo = le32_to_cpu(txbd->wb.tstamp); + if (lo <= tstamp_lo) hi -= 1; - *tstamp = (u64)hi << 32 | txbd->wb.tstamp; + *tstamp = (u64)hi << 32 | tstamp_lo; } static void enetc_tstamp_tx(struct sk_buff *skb, u64 tstamp) @@ -483,16 +484,17 @@ static void enetc_get_rx_tstamp(struct net_device *ndev, struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb); struct enetc_ndev_priv *priv = netdev_priv(ndev); struct enetc_hw *hw = &priv->si->hw; - u32 lo, hi; + u32 lo, hi, tstamp_lo; u64 tstamp; - if (rxbd->r.flags & ENETC_RXBD_FLAG_TSTMP) { + if (le16_to_cpu(rxbd->r.flags) & ENETC_RXBD_FLAG_TSTMP) { lo = enetc_rd(hw, ENETC_SICTR0); hi = enetc_rd(hw, ENETC_SICTR1); - if (lo <= rxbd->r.tstamp) + tstamp_lo = le32_to_cpu(rxbd->r.tstamp); + if (lo <= tstamp_lo) hi -= 1; - tstamp = (u64)hi << 32 | rxbd->r.tstamp; + tstamp = (u64)hi << 32 | tstamp_lo; memset(shhwtstamps, 0, sizeof(*shhwtstamps)); shhwtstamps->hwtstamp = ns_to_ktime(tstamp); } |