diff mbox

can: fix SJA1000 dlc for RTR packets

Message ID 20110502145048.GF338@e-circ.dyndns.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Kurt Van Dijck May 2, 2011, 2:50 p.m. UTC
RTR frames do have a valid data length code on CAN.
The driver for SJA1000 did not handle that situation properly.

Signed-off-by: Kurt Van Dijck <kurt.van.dijck@eia.be>
---
 drivers/net/can/sja1000/sja1000.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Marc Kleine-Budde May 2, 2011, 3:15 p.m. UTC | #1
On 05/02/2011 04:50 PM, Kurt Van Dijck wrote:
> RTR frames do have a valid data length code on CAN.
> The driver for SJA1000 did not handle that situation properly.

Looks good!
> 
> Signed-off-by: Kurt Van Dijck <kurt.van.dijck@eia.be>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
>  drivers/net/can/sja1000/sja1000.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
> index a358ea9..f501bba 100644
> --- a/drivers/net/can/sja1000/sja1000.c
> +++ b/drivers/net/can/sja1000/sja1000.c
> @@ -346,10 +346,10 @@ static void sja1000_rx(struct net_device *dev)
>  		    | (priv->read_reg(priv, REG_ID2) >> 5);
>  	}
>  
> +	cf->can_dlc = get_can_dlc(fi & 0x0F);
>  	if (fi & FI_RTR) {
>  		id |= CAN_RTR_FLAG;
>  	} else {
> -		cf->can_dlc = get_can_dlc(fi & 0x0F);
>  		for (i = 0; i < cf->can_dlc; i++)
>  			cf->data[i] = priv->read_reg(priv, dreg++);
>  	}
> _______________________________________________
> Socketcan-core mailing list
> Socketcan-core@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/socketcan-core
David Miller May 5, 2011, 6:02 p.m. UTC | #2
From: Kurt Van Dijck <kurt.van.dijck@eia.be>
Date: Mon, 2 May 2011 16:50:48 +0200

> RTR frames do have a valid data length code on CAN.
> The driver for SJA1000 did not handle that situation properly.
> 
> Signed-off-by: Kurt Van Dijck <kurt.van.dijck@eia.be>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index a358ea9..f501bba 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -346,10 +346,10 @@  static void sja1000_rx(struct net_device *dev)
 		    | (priv->read_reg(priv, REG_ID2) >> 5);
 	}
 
+	cf->can_dlc = get_can_dlc(fi & 0x0F);
 	if (fi & FI_RTR) {
 		id |= CAN_RTR_FLAG;
 	} else {
-		cf->can_dlc = get_can_dlc(fi & 0x0F);
 		for (i = 0; i < cf->can_dlc; i++)
 			cf->data[i] = priv->read_reg(priv, dreg++);
 	}