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