]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: gianfar: Use __be64 * to store pointers to big endian values
authorSimon Horman <horms@kernel.org>
Fri, 11 Oct 2024 09:20:00 +0000 (10:20 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 15 Oct 2024 11:59:26 +0000 (13:59 +0200)
Timestamp values are read using pointers to 64-bit big endian values.
But the type of these pointers is u64 *, host byte order.
Use __be64 * instead.

Flagged by Sparse:

.../gianfar.c:2212:60: warning: cast to restricted __be64
.../gianfar.c:2475:53: warning: cast to restricted __be64

Introduced by
commit cc772ab7cdca ("gianfar: Add hardware RX timestamping support").

Compile tested only.
No functional change intended.

Signed-off-by: Simon Horman <horms@kernel.org>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Link: https://patch.msgid.link/20241011-gianfar-be64-v1-1-a77ebe972176@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/freescale/gianfar.c

index 092db69958241cdc5e95bce541af690f31792024..435138f4699d2c8645d42ada392e3883e8014078 100644 (file)
@@ -2207,8 +2207,9 @@ static void gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
 
                if (unlikely(do_tstamp)) {
                        struct skb_shared_hwtstamps shhwtstamps;
-                       u64 *ns = (u64 *)(((uintptr_t)skb->data + 0x10) &
-                                         ~0x7UL);
+                       __be64 *ns;
+
+                       ns = (__be64 *)(((uintptr_t)skb->data + 0x10) & ~0x7UL);
 
                        memset(&shhwtstamps, 0, sizeof(shhwtstamps));
                        shhwtstamps.hwtstamp = ns_to_ktime(be64_to_cpu(*ns));
@@ -2471,7 +2472,7 @@ static void gfar_process_frame(struct net_device *ndev, struct sk_buff *skb)
        /* Get receive timestamp from the skb */
        if (priv->hwts_rx_en) {
                struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb);
-               u64 *ns = (u64 *) skb->data;
+               __be64 *ns = (__be64 *)skb->data;
 
                memset(shhwtstamps, 0, sizeof(*shhwtstamps));
                shhwtstamps->hwtstamp = ns_to_ktime(be64_to_cpu(*ns));