Skip to content

Commit

Permalink
can: ems_usb: fix endianess of CAN ID
Browse files Browse the repository at this point in the history
The device expects the CAN ID in little endian format.

Signed-off-by: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
  • Loading branch information
Gerhard Uttenthaler authored and Marc Kleine-Budde committed Apr 1, 2015
1 parent 9911674 commit 8a4b5b0
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions drivers/net/can/usb/ems_usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ MODULE_LICENSE("GPL v2");
* CPC_MSG_TYPE_EXT_CAN_FRAME or CPC_MSG_TYPE_EXT_RTR_FRAME.
*/
struct cpc_can_msg {
u32 id;
__le32 id;
u8 length;
u8 msg[8];
};
Expand Down Expand Up @@ -765,7 +765,7 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne

msg = (struct ems_cpc_msg *)&buf[CPC_HEADER_SIZE];

msg->msg.can_msg.id = cf->can_id & CAN_ERR_MASK;
msg->msg.can_msg.id = cpu_to_le32(cf->can_id & CAN_ERR_MASK);
msg->msg.can_msg.length = cf->can_dlc;

if (cf->can_id & CAN_RTR_FLAG) {
Expand All @@ -783,9 +783,6 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
msg->length = CPC_CAN_MSG_MIN_SIZE + cf->can_dlc;
}

/* Respect byte order */
msg->msg.can_msg.id = cpu_to_le32(msg->msg.can_msg.id);

for (i = 0; i < MAX_TX_URBS; i++) {
if (dev->tx_contexts[i].echo_index == MAX_TX_URBS) {
context = &dev->tx_contexts[i];
Expand Down

0 comments on commit 8a4b5b0

Please sign in to comment.