Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4297224ybz; Tue, 28 Apr 2020 08:57:54 -0700 (PDT) X-Google-Smtp-Source: APiQypLoE9PKxRpW+2m3S6yteEMu7pneahWUX4yE584909oK4j1NtXxnZBsBvIDvHRrN9tMHtLot X-Received: by 2002:a05:6402:379:: with SMTP id s25mr23889229edw.69.1588089474116; Tue, 28 Apr 2020 08:57:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588089474; cv=none; d=google.com; s=arc-20160816; b=IPnt9gBtvrlQQ2cUIPkTHT7E4um/vw1w8GoW/tAVbBV2lzjAGaBvdPvtWnAdZ7nstY 1NSe500xTVMNH3NAyrN4fPzPj9ome6GAEqCkH05cqCtWZTTWVZvD8jue/7t5cIxoApA8 aqlsSiqaLPg2SyN9pQI6kfbUsigHRyop1H7sTQJCsNNEDF7s6nUMKBOWEK8YudRqL1Ec X9Z1We1OLjgvoYGAIU4t+SPh9/G5Ou1lcCaeZ2dMyK6YtSSKAskI/pnW1HhixvLJ5pRx 9KOZLGJD4QV3Dq3vejZVkMi1YrBP07DzAR6lB2mr3vYyHasBpFXOi4r3JyQ9FYpsswzl LZqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=4Dhg0+RCUg11ejc9Q1N+f7+gMXXeAVYfvKm1BhfoLmA=; b=djIlD1VOJD9YZY5ydxFJ5gk3UKLCCesA+bBcVhHB8ILgn6DDB0hRr8C406/u3ibLiF aDt91Df0HUUcCE8ctTl/Dc6UkKS4+kFRuJ3AH9k1iUguPMyf4tRQBtuoT7jylUIiTobP eY8CQu8L50BsSr8hJk5yih7gBhfWSWvKzZFtBuOy+gVIUS9FXhiD9XB1gktS6+VTIh11 jGPnnO8NIeMnP7a/8B28g1qeqkFv2b8xXa90e7QuR1Fd11DnAhoOGWoXvEPH0sMgHr11 q00SFFol32QhbeDOe2Y1pcqUi6QYbRAfOknNnH8xlKtt5qRU2E+oR3cogigXtN/AGFKq uWhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=JQYZducC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q8si2205433ejn.176.2020.04.28.08.57.30; Tue, 28 Apr 2020 08:57:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=JQYZducC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728334AbgD1Px1 (ORCPT + 99 others); Tue, 28 Apr 2020 11:53:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728083AbgD1Px0 (ORCPT ); Tue, 28 Apr 2020 11:53:26 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFC8EC03C1AB; Tue, 28 Apr 2020 08:53:26 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id 18so10855243pfx.6; Tue, 28 Apr 2020 08:53:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=4Dhg0+RCUg11ejc9Q1N+f7+gMXXeAVYfvKm1BhfoLmA=; b=JQYZducCGPFz2N8/fn4DsjPaw5tXH7cerckhDV74yHRZ6tAj5g+UQBXcvjLrXCjGmb +11lZ0NeiQXAC6/lWBsC2aJemHrcgUywTQuV3JiNe8dShink+PnjdqCViJNwhBh26coD 8Pmd1dfvsdYIwWenuU1fKuOH5/tXjkjclCA+xme9q7IzL/XdrtP1dEsKOXttJx3wde3e KeMIJd1BOZU03/sBg1GQW9qZocKAk4dkGGTPNu08zaZYgx/OLJEB4yGGBjp9+GStrCrG NLUbwkJopSgh9V5LZFdMJN2SI+e5i03Aq3kglchAlXoK6L8seVUVBbcx4peeDImXPE59 F3vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=4Dhg0+RCUg11ejc9Q1N+f7+gMXXeAVYfvKm1BhfoLmA=; b=Kerv7oHyngeTaJnLXEA1/dXydGNKMNAooAUTS4+zIZTDqcHjuDquQXlwo+hHGwoH+q 135gOLYWU6HKWcVETMT0lBw6P714DmdTJ/jMxD/gJILbBdkKFDQ3k63/Vb1fCLk/kbig 8mzyBopTGp7aY7zSl8Q5wd0ELGMX5v4Urh0KtK3YiKI+2xBTmbftNKSmrk6BI4+jzHKv NUH9ZmF2wkEP6s7FlvyTZ8D5MzofGC4pNCcPse8YVlf1w3maSN8iIvYtwhGEe8OMU4Pw D+K58p/HXH2I2sTFaPyOKExR7P4VSX2+gtHNc3aVeWbX03UV215hvB0ZquncU2sErVZt yu2Q== X-Gm-Message-State: AGi0PuZIbQcnnzhFNkqpQvrzTGfheoTmDA/1XArMX32l+KKpyjH93xbr sXBMkS4TEtYL/33ptYZGMptrYLezIIDMnUc0GN0FNKbX X-Received: by 2002:a63:5511:: with SMTP id j17mr28068937pgb.4.1588089206109; Tue, 28 Apr 2020 08:53:26 -0700 (PDT) MIME-Version: 1.0 References: <20200320093125.23092-1-brgl@bgdev.pl> In-Reply-To: From: Andy Shevchenko Date: Tue, 28 Apr 2020 18:53:19 +0300 Message-ID: Subject: Re: [PATCH] gpiolib: don't call sleeping functions with a spinlock taken To: Bartosz Golaszewski Cc: Linus Walleij , Bartosz Golaszewski , Geert Uytterhoeven , "open list:GPIO SUBSYSTEM" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 14, 2020 at 6:35 PM Bartosz Golaszewski wrote: > > wt., 14 kwi 2020 o 14:00 Linus Walleij napisa= =C5=82(a): > > > > On Fri, Mar 20, 2020 at 10:31 AM Bartosz Golaszewski wr= ote: > > > > > From: Bartosz Golaszewski > > > > > > We must not call pinctrl_gpio_can_use_line() with the gpio_lock taken > > > as it takes a mutex internally. Let's move the call before taking the > > > spinlock and store the return value. > > > > > > This isn't perfect - there's a moment between calling > > > pinctrl_gpio_can_use_line() and taking the spinlock where the situati= on > > > can change but it isn't a regression either: previously this part was= n't > > > protected at all and it only affects the information user-space is > > > seeing. It seems I have no original at hand, so, commenting here. It looks like we need a mutex less function which can be used here and in the call you are considering racy. Note, mutex followed by spin lock is fine, other way around is not. So, here you should have something like mutex_lock ok_for_gpio =3D ... spin_lock ... spin_unlock mutex_unlock. --=20 With Best Regards, Andy Shevchenko