Skip to content

Commit

Permalink
can: cc770: store echo skb before starting the transfer
Browse files Browse the repository at this point in the history
On slow systems and high CAN bitrates, the error message
"can_put_echo_skb: BUG! echo_skb is occupied!" did show up because
can_put_echo_skb() was called after starting the transfer.

Signed-off-by: Wolfgang Grandegger <[email protected]>
Signed-off-by: Marc Kleine-Budde <[email protected]>
  • Loading branch information
grandwolf authored and marckleinebudde committed Feb 2, 2012
1 parent 6e9d554 commit 7bb4db9
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/net/can/cc770/cc770.c
Original file line number Diff line number Diff line change
Expand Up @@ -440,12 +440,14 @@ static netdev_tx_t cc770_start_xmit(struct sk_buff *skb, struct net_device *dev)
for (i = 0; i < dlc; i++)
cc770_write_reg(priv, msgobj[mo].data[i], cf->data[i]);

/* Store echo skb before starting the transfer */
can_put_echo_skb(skb, dev, 0);

cc770_write_reg(priv, msgobj[mo].ctrl1,
RMTPND_RES | TXRQST_SET | CPUUPD_RES | NEWDAT_UNC);

stats->tx_bytes += dlc;

can_put_echo_skb(skb, dev, 0);

/*
* HM: We had some cases of repeated IRQs so make sure the
Expand Down

0 comments on commit 7bb4db9

Please sign in to comment.