data = (cf->can_id & CAN_SFF_MASK) << 18;
        hecc_write_mbx(priv, mbxno, HECC_CANMID, data);
        hecc_write_mbx(priv, mbxno, HECC_CANMDL,
-               be32_to_cpu(*(u32 *)(cf->data)));
+               be32_to_cpu(*(__be32 *)(cf->data)));
        if (cf->can_dlc > 4)
                hecc_write_mbx(priv, mbxno, HECC_CANMDH,
-                       be32_to_cpu(*(u32 *)(cf->data + 4)));
+                       be32_to_cpu(*(__be32 *)(cf->data + 4)));
        else
                *(u32 *)(cf->data + 4) = 0;
        can_put_echo_skb(skb, ndev, mbxno);
                cf->can_id |= CAN_RTR_FLAG;
        cf->can_dlc = get_can_dlc(data & 0xF);
        data = hecc_read_mbx(priv, mbxno, HECC_CANMDL);
-       *(u32 *)(cf->data) = cpu_to_be32(data);
+       *(__be32 *)(cf->data) = cpu_to_be32(data);
        if (cf->can_dlc > 4) {
                data = hecc_read_mbx(priv, mbxno, HECC_CANMDH);
-               *(u32 *)(cf->data + 4) = cpu_to_be32(data);
-       } else {
-               *(u32 *)(cf->data + 4) = 0;
+               *(__be32 *)(cf->data + 4) = cpu_to_be32(data);
        }
        spin_lock_irqsave(&priv->mbx_lock, flags);
        hecc_clear_bit(priv, HECC_CANME, mbx_mask);