Module: xenomai-2.6
Branch: master
Commit: 7fcc04ce4bca162bc3367c4f04b8bd96edc02ca9
URL:    
http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=7fcc04ce4bca162bc3367c4f04b8bd96edc02ca9

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Wed Jan 29 12:57:24 2014 +0100

drivers/flexcan: avoid unaligned access

---

 ksrc/drivers/can/rtcan_flexcan.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/ksrc/drivers/can/rtcan_flexcan.c b/ksrc/drivers/can/rtcan_flexcan.c
index 8f0e8d1..1674b73 100644
--- a/ksrc/drivers/can/rtcan_flexcan.c
+++ b/ksrc/drivers/can/rtcan_flexcan.c
@@ -38,6 +38,7 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
 #include <linux/pinctrl/consumer.h>
 #endif
+#include <asm/unaligned.h>
 
 #include <rtdm/rtdm_driver.h>
 
@@ -497,11 +498,9 @@ static void flexcan_rx_interrupt(struct rtcan_device *dev,
                cf->can_id |= CAN_RTR_FLAG;
                skb->rb_frame_size = EMPTY_RB_FRAME_SIZE;
        } else {
-               skb->rb_frame_size = EMPTY_RB_FRAME_SIZE + cf->can_dlc ;
-               *(__be32 *)(cf->data + 0) =
-                       cpu_to_be32(flexcan_read(&mb->data[0]));
-               *(__be32 *)(cf->data + 4) =
-                       cpu_to_be32(flexcan_read(&mb->data[1]));
+               skb->rb_frame_size = EMPTY_RB_FRAME_SIZE + cf->can_dlc;
+               put_unaligned_be32(flexcan_read(&mb->data[0]), cf->data + 0);
+               put_unaligned_be32(flexcan_read(&mb->data[1]), cf->data + 4);
        }
 
        /* Store the interface index */


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to