From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22467C433EF for ; Thu, 21 Jul 2022 01:58:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5BB446B0072; Wed, 20 Jul 2022 21:58:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 592C96B0073; Wed, 20 Jul 2022 21:58:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4590D6B0074; Wed, 20 Jul 2022 21:58:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 34B976B0072 for ; Wed, 20 Jul 2022 21:58:17 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 068441C6164 for ; Thu, 21 Jul 2022 01:58:17 +0000 (UTC) X-FDA: 79709447034.15.352DE42 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by imf31.hostedemail.com (Postfix) with ESMTP id A512B20015 for ; Thu, 21 Jul 2022 01:58:16 +0000 (UTC) Received: by mail-pj1-f53.google.com with SMTP id q43-20020a17090a17ae00b001f1f67e053cso120085pja.4 for ; Wed, 20 Jul 2022 18:58:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ftZmQnNxSbBgGxR5gxqXE4IdbtT6X/p5Ec8B9Vn+x7g=; b=qrRsvYIvHunFmKLnL0KKZbsoF09Zae5Nyxvvp2JUqqOcFmHuOoxROb4Y6mPqazxavg rGfHsgv+zn+DUzRYJ4SbH/V2z3b2JKQL9j7fTxh3dYNw1cgM3P5MaCtBBFzaV3SvqqcM pNfoobD89tofIJPydUuJrl5oJDVQ2pBV8TpDI3lHn6paymKtf1UxTHC4EgwMY/fmh4iI Im5gckNJ/CB1WldghugzlBjcs1wZRPQH6d73De7jcFjsmIWIpq56LOYdaa4N7cZMs2+R fEQXwhvMuf3m4rwTLSkBVeQhLxkSGDL+e+xt3BCoyjvokTPaRnI7ILbaYaAFF6EeV/gk 06JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ftZmQnNxSbBgGxR5gxqXE4IdbtT6X/p5Ec8B9Vn+x7g=; b=WGLXA8xHV2ggivMveIxUuzWhFy3fKb3B2cSAPavnRP3hMADfvB0uYvI8A+CUhwCx8n x0HRg2G5bq/n9iTp7bM4ZUiQOPNzm8bab2u8dghfxBdpmxvSMUgg4745MyNQwdKbQgkb XCM4yGOrhaAkH/VrxHmpcenAdortvqi4gL+f6VKIrmNv7HoRul88L/9aEJzs6roxoVBS sjkaxXtui9u1o8Q9oVMd3dEcMbHr+4ZeJOAfpSsS+Y+tJT7T0AhmOp9JprKwVQs5QePv kFD9hmXy1YIKg/MlWtJ+cmLC3wK9QqGFpOgAtOKZVB4sRPimTRZsNp9sCp+0tANRYKRP VHgg== X-Gm-Message-State: AJIora/M41QzcX+0mfqEdfyJPF4UmZ5yJhXIe3y8JhX5/XYjjQYZGSDM zJOQfehRviWiAHcJyBx6JkPGAUmWhRfwpid3JLI= X-Google-Smtp-Source: AGRyM1t6N7pQcjCsI7OAPPR2xzUGupyIxto7KPa5rosYau5ExUl6th5F/uXzTmwuWKLkGf+X0VhV2mO9Jk/JkPR4BUk= X-Received: by 2002:a17:90a:b785:b0:1f1:be59:a607 with SMTP id m5-20020a17090ab78500b001f1be59a607mr8540324pjr.84.1658368695502; Wed, 20 Jul 2022 18:58:15 -0700 (PDT) MIME-Version: 1.0 References: <20220715072951.859586-1-dario.binacchi@amarulasolutions.com> In-Reply-To: <20220715072951.859586-1-dario.binacchi@amarulasolutions.com> From: Souptick Joarder Date: Thu, 21 Jul 2022 07:28:03 +0530 Message-ID: Subject: Re: [PATCH v3] can: slcan: do not sleep with a spin lock held To: Dario Binacchi Cc: linux-kernel@vger.kernel.org, ltp@lists.linux.it, Jeroen Hofstee , kbuild test robot , Richard Palethorpe , kernel test robot , lkp@lists.01.org, Jiri Slaby , Linux Memory Management List , "David S. Miller" , Eric Dumazet , Greg Kroah-Hartman , Jakub Kicinski , Marc Kleine-Budde , Paolo Abeni , Sebastian Andrzej Siewior , Vincent Mailhol , Wolfgang Grandegger , linux-can@vger.kernel.org, netdev@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Authentication-Results: i=1; imf31.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=qrRsvYIv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf31.hostedemail.com: domain of jrdr.linux@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=jrdr.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1658368696; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ftZmQnNxSbBgGxR5gxqXE4IdbtT6X/p5Ec8B9Vn+x7g=; b=gFcYGyBU38P1fNPvdh2S3XMJdszOf+uKzNwJ08SQUMV4dlF0tFihq7L7GcQ3PNmpCGM5su G5PwlFtlhHYuh5CqDyX8WwmqgAckPoLkWIeYd2dW8XWw6wlWqnnhmXy/fTy1acJm67dyZJ YnoqjxKBn7N+FueODEHJj+FsThv4TeU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1658368696; a=rsa-sha256; cv=none; b=h4kxCeMQmP2lJaEYau2sZwqJTc+FhAINUTJXfimV5JWdyGpndaduSajW/C53ZvDfb6VNIz 6AW9H1QsXnW26x3bXp1VRNIG71AGl1KgVDYlIIefRsBNseRS05yN3HU8iMb4N7KKgXTHu5 zQDOhX1Pod+Uzcb/99dJ/x8RxI9ftcQ= X-Stat-Signature: g9irjs3aixratq93zxcn8e3gjebrzwkn X-Rspamd-Queue-Id: A512B20015 X-Rspam-User: Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=qrRsvYIv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf31.hostedemail.com: domain of jrdr.linux@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=jrdr.linux@gmail.com X-Rspamd-Server: rspam11 X-HE-Tag: 1658368696-88262 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Jul 15, 2022 at 1:00 PM Dario Binacchi wrote: > > We can't call close_candev() with a spin lock held, so release the lock > before calling it. After calling close_candev(), we can update the > fields of the private `struct can_priv' without having to acquire the > lock. But here we are updating private 'struct can_priv' before close_candev() while taking the lock. If we go by change logs, then spin_unlock_bh() need to called before close_candev() and we can update the private 'struct can_priv' in existing place. > > Fixes: c4e54b063f42f ("can: slcan: use CAN network device driver API") > Reported-by: kernel test robot > Link: https://lore.kernel.org/linux-kernel/Ysrf1Yc5DaRGN1WE@xsang-OptiPlex-9020/ > Signed-off-by: Dario Binacchi > > --- > > Changes in v3: > - Update the commit message. > - Reset sl->rcount and sl->xleft before releasing the spin lock. > > Changes in v2: > - Release the lock just before calling the close_candev(). > > drivers/net/can/slcan/slcan-core.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/can/slcan/slcan-core.c b/drivers/net/can/slcan/slcan-core.c > index 54d29a410ad5..d40ddc596596 100644 > --- a/drivers/net/can/slcan/slcan-core.c > +++ b/drivers/net/can/slcan/slcan-core.c > @@ -689,15 +689,14 @@ static int slc_close(struct net_device *dev) > clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags); > } > netif_stop_queue(dev); > + sl->rcount = 0; > + sl->xleft = 0; > + spin_unlock_bh(&sl->lock); > close_candev(dev); > sl->can.state = CAN_STATE_STOPPED; > if (sl->can.bittiming.bitrate == CAN_BITRATE_UNKNOWN) > sl->can.bittiming.bitrate = CAN_BITRATE_UNSET; > > - sl->rcount = 0; > - sl->xleft = 0; > - spin_unlock_bh(&sl->lock); > - > return 0; > } > > -- > 2.32.0 > >