lkml.org 
[lkml]   [2018]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 44/52] can: flex_can: Correct the checking for frame length in flexcan_start_xmit()
    Date
    From: Luu An Phu <phu.luuan@nxp.com>

    [ Upstream commit 13454c14550065fcc1705d6bd4ee6d40e057099f ]

    The flexcan_start_xmit() function compares the frame length with data
    register length to write frame content into data[0] and data[1]
    register. Data register length is 4 bytes and frame maximum length is 8
    bytes.

    Fix the check that compares frame length with 3. Because the register
    length is 4.

    Signed-off-by: Luu An Phu <phu.luuan@nxp.com>
    Reviewed-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/net/can/flexcan.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
    index 16f7cadda5c3..47f43bdecd51 100644
    --- a/drivers/net/can/flexcan.c
    +++ b/drivers/net/can/flexcan.c
    @@ -493,7 +493,7 @@ static int flexcan_start_xmit(struct sk_buff *skb, struct net_device *dev)
    data = be32_to_cpup((__be32 *)&cf->data[0]);
    flexcan_write(data, &regs->mb[FLEXCAN_TX_BUF_ID].data[0]);
    }
    - if (cf->can_dlc > 3) {
    + if (cf->can_dlc > 4) {
    data = be32_to_cpup((__be32 *)&cf->data[4]);
    flexcan_write(data, &regs->mb[FLEXCAN_TX_BUF_ID].data[1]);
    }
    --
    2.11.0
    \
     
     \ /
      Last update: 2018-02-03 19:19    [W:4.322 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site