Signed-off-by: Marc Kleine-Budde <[email protected]>
---
 drivers/net/can/flexcan.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index ef443a0..4b88ece 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -471,12 +471,14 @@ static void flexcan_read_fifo(const struct net_device 
*dev,
        else
                cf->can_id = (reg_id >> 18) & CAN_SFF_MASK;
 
-       if (reg_ctrl & FLEXCAN_MB_CNT_RTR)
-               cf->can_id |= CAN_RTR_FLAG;
        cf->can_dlc = get_can_dlc((reg_ctrl >> 16) & 0xf);
 
-       *(__be32 *)(cf->data + 0) = cpu_to_be32(readl(&mb->data[0]));
-       *(__be32 *)(cf->data + 4) = cpu_to_be32(readl(&mb->data[1]));
+       if (reg_ctrl & FLEXCAN_MB_CNT_RTR)
+               cf->can_id |= CAN_RTR_FLAG;
+       else {
+               *(__be32 *)(cf->data + 0) = cpu_to_be32(readl(&mb->data[0]));
+               *(__be32 *)(cf->data + 4) = cpu_to_be32(readl(&mb->data[1]));
+       }
 
        /* mark as read */
        writel(FLEXCAN_IFLAG_RX_FIFO_AVAILABLE, &regs->iflag1);
-- 
1.7.0.4

_______________________________________________
Socketcan-core mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-core

Reply via email to