| From fd1d487c6aa605f0232ab4b174f71ef573d74e66 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 28 Aug 2019 21:16:55 +0200 |
| Subject: can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to |
| can_put_echo_skb() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Marc Kleine-Budde <mkl@pengutronix.de> |
| |
| [ Upstream commit 81c9c8e0adef3285336b942f93287c554c89e6c6 ] |
| |
| The driver has to first fill the skb with data and then handle it to |
| can_put_echo_skb(). This patch moves the can_put_echo_skb() down, right before |
| sending the skb out via USB. |
| |
| Fixes: 51f3baad7de9 ("can: mcba_usb: Add support for Microchip CAN BUS Analyzer") |
| Cc: Remigiusz Kołłątaj <remigiusz.kollataj@mobica.com> |
| Link: https://lore.kernel.org/r/20201111221204.1639007-1-mkl@pengutronix.de |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/can/usb/mcba_usb.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/can/usb/mcba_usb.c b/drivers/net/can/usb/mcba_usb.c |
| index 1b0afeaf1a3c2..896f5b0227295 100644 |
| --- a/drivers/net/can/usb/mcba_usb.c |
| +++ b/drivers/net/can/usb/mcba_usb.c |
| @@ -337,8 +337,6 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb, |
| if (!ctx) |
| return NETDEV_TX_BUSY; |
| |
| - can_put_echo_skb(skb, priv->netdev, ctx->ndx); |
| - |
| if (cf->can_id & CAN_EFF_FLAG) { |
| /* SIDH | SIDL | EIDH | EIDL |
| * 28 - 21 | 20 19 18 x x x 17 16 | 15 - 8 | 7 - 0 |
| @@ -368,6 +366,8 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb, |
| if (cf->can_id & CAN_RTR_FLAG) |
| usb_msg.dlc |= MCBA_DLC_RTR_MASK; |
| |
| + can_put_echo_skb(skb, priv->netdev, ctx->ndx); |
| + |
| err = mcba_usb_xmit(priv, (struct mcba_usb_msg *)&usb_msg, ctx); |
| if (err) |
| goto xmit_failed; |
| -- |
| 2.27.0 |
| |