lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 201/255] can: bcm: check the result of can_send() in bcm_can_tx()
    Date
    From: Ziyang Xuan <william.xuanziyang@huawei.com>

    [ Upstream commit 3fd7bfd28cfd68ae80a2fe92ea1615722cc2ee6e ]

    If can_send() fail, it should not update frames_abs counter
    in bcm_can_tx(). Add the result check for can_send() in bcm_can_tx().

    Suggested-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Suggested-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Link: https://lore.kernel.org/all/9851878e74d6d37aee2f1ee76d68361a46f89458.1663206163.git.william.xuanziyang@huawei.com
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/can/bcm.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/net/can/bcm.c b/net/can/bcm.c
    index 63d81147fb4e..fbf1143a56e1 100644
    --- a/net/can/bcm.c
    +++ b/net/can/bcm.c
    @@ -276,6 +276,7 @@ static void bcm_can_tx(struct bcm_op *op)
    struct sk_buff *skb;
    struct net_device *dev;
    struct canfd_frame *cf = op->frames + op->cfsiz * op->currframe;
    + int err;

    /* no target device? => exit */
    if (!op->ifindex)
    @@ -300,11 +301,11 @@ static void bcm_can_tx(struct bcm_op *op)
    /* send with loopback */
    skb->dev = dev;
    can_skb_set_owner(skb, op->sk);
    - can_send(skb, 1);
    + err = can_send(skb, 1);
    + if (!err)
    + op->frames_abs++;

    - /* update statistics */
    op->currframe++;
    - op->frames_abs++;

    /* reached last frame? */
    if (op->currframe >= op->nframes)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-24 22:26    [W:4.103 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site