Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3184426ybb; Mon, 6 Apr 2020 04:00:33 -0700 (PDT) X-Google-Smtp-Source: APiQypJxulCMD88UEu3LPZrEv/e9PmmEc86DL+WVKTYsSKBrNZVZgwY2UkJMPR5wSQoWFd/oCmbS X-Received: by 2002:aca:b756:: with SMTP id h83mr12564351oif.4.1586170833341; Mon, 06 Apr 2020 04:00:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586170833; cv=none; d=google.com; s=arc-20160816; b=ibD2aQNlc5ejGUMwNpF+Sq8KF1kSeVFQx3XrU+GRCv8oQli7djqa/07dqsySHjRifH E00wFf/R/uo41GzE+QWf7twrKyzWDzFEU5Gb6ToJtetWk8HN/DlJyQ7zI77TlXAGtfHl pKQLsXGvdDJCTD68O84hnXvV2lx5OQdCMqseBk9J0feFAybyQ66DPrXXeTWAQNZY8M6L JP6q7DiYENkVwMhrksu1oTOfNXFRxa8zjQ72mtTbzAlxP8RTgsu0bcaVDby96A+Mo/mT PDnGknYjg0KsvnwWKtYxR2irPGkSBnplUP9t6I1YK2LvAyfyl7lxeqGa3hm6IXcZCPCv 29Zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=76mGlpp6BFJSmPDHJW6kprv/8C2HQ3fa7ORMT87pipU=; b=M8jU+pxQ75a0ocmSvbmX6Uh26OHU2K1kSis5+kaXzJ6JAehcumA0Ggwz7d03tt97UZ X/s932r1RrqTkXYzF3ALgigWr7C5Pl7UfhLGMNt89Se0J82iNMDq/6oRp+9zoKy/mS1l oRB2JfFUBH9WtB4a4YEQEV90Irgm9yv5H4sNHK9c3KA5VIg33cXVxV38xD5+EMbI2x5I /I2Dq7ve+rO0f+I8qYBW7iz4M653q6gVskEYkWlJOsMKI1HJz8xewLYHYPjrIBoAEmcl 8U7xtoXEeWFICI8WkJ4i9bVDDYQLXGFRsygfKNOlhkHEBSBW8ZJJdWlqD7LD0rsQLghh gxiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=XKJsvcpo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id m8si7061395oim.26.2020.04.06.04.00.21; Mon, 06 Apr 2020 04:00:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=XKJsvcpo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727185AbgDFK77 (ORCPT + 99 others); Mon, 6 Apr 2020 06:59:59 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:44553 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726841AbgDFK77 (ORCPT ); Mon, 6 Apr 2020 06:59:59 -0400 Received: by mail-pg1-f193.google.com with SMTP id 142so7350854pgf.11; Mon, 06 Apr 2020 03:59:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=76mGlpp6BFJSmPDHJW6kprv/8C2HQ3fa7ORMT87pipU=; b=XKJsvcpo7Y3eIsvwt+slK2It9/UwJptza1whwFfWJeSj+Tk+KPPzWRnlV8RzFZnRco /y7P0QfbJX6+uyw/ECZSlNemCC0/iajDr+1ag30GCLMMRu5NcpKvX9FkOA2gYmQZI698 NHwzj58/n2FvYzGWfXQMvk+h0znA13zDb/EZuCDh94XdXGJYTJiQw0ILMoO5sLMAePcA vaAVOnzoTiiSNsWCJVKud051c87X5fZ2jUa/FtqGx2Asx2VGORgUd7wMw2XAlPwydg/+ SrGwQPAkrr9goYq8UrZDdBGT2FeBGd/7ZJLVvTxDRZwkeZhXyMGxpuHt9BOGKWHq7Xl8 N2Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=76mGlpp6BFJSmPDHJW6kprv/8C2HQ3fa7ORMT87pipU=; b=CmAadlBZ25hcVGYOPKOizSV9QjkVYyy+QiMBybhyUtKTNQY9ByYi6E14iw4093Y3EJ mb0WCPhQla3T32nVuKdy5TNR45XlTKgaGR9MTqCDXSZ/3WAmJO2Gr9PwXUmHj1z33fD1 HTo0G3DZKVv2YzcC7Q2YQPp2iyukKQ6x6Btuds8GlfziNNrOuxv4vgXtppGiU46M5rFW kDmQaqvzgyEz7h2013pj3BeVCAXL2yLD+VuiQ9O1dIK/QUK/0aQvtFOTzET+4SjDM1Bl TG2V5P7u+eaxuy3/9OeRMgjbYSJ4imXE2pbPdmf5skhj0keEDPTm9c15Qn1XrxHJJxVk Uh6Q== X-Gm-Message-State: AGi0PuZpjTtQr78Qz6mihnvi9fjcWvNjEPeqCXuhHTXVklRBcLrFFT6S If8gdyYjudd/jAjBk7SDWYE= X-Received: by 2002:a62:7911:: with SMTP id u17mr20215835pfc.305.1586170796382; Mon, 06 Apr 2020 03:59:56 -0700 (PDT) Received: from workstation-kernel-dev ([103.87.57.178]) by smtp.gmail.com with ESMTPSA id x68sm9955214pfb.5.2020.04.06.03.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2020 03:59:55 -0700 (PDT) Date: Mon, 6 Apr 2020 16:29:50 +0530 From: Amol Grover To: James Morris , "Serge E . Hallyn" Cc: linux-kernel@vger.kernel.org, linux-kernel-mentees@lists.linuxfoundation.org, Joel Fernandes , Madhuparna Bhowmik , "Paul E . McKenney" , linux-security-module@vger.kernel.org, Amol Grover Subject: [PATCH RESEND] device_cgroup: Fix RCU list debugging warning Message-ID: <20200406105950.GA2285@workstation-kernel-dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailer: git-send-email 2.24.1 User-Agent: Mutt/1.12.2 (2019-09-21) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org exceptions may be traversed using list_for_each_entry_rcu() outside of an RCU read side critical section BUT under the protection of decgroup_mutex. Hence add the corresponding lockdep expression to fix the following false-positive warning: [ 2.304417] ============================= [ 2.304418] WARNING: suspicious RCU usage [ 2.304420] 5.5.4-stable #17 Tainted: G E [ 2.304422] ----------------------------- [ 2.304424] security/device_cgroup.c:355 RCU-list traversed in non-reader section!! Signed-off-by: Amol Grover --- security/device_cgroup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/security/device_cgroup.c b/security/device_cgroup.c index 7d0f8f7431ff..b7da9e0970d9 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -352,7 +352,8 @@ static bool match_exception_partial(struct list_head *exceptions, short type, { struct dev_exception_item *ex; - list_for_each_entry_rcu(ex, exceptions, list) { + list_for_each_entry_rcu(ex, exceptions, list, + lockdep_is_held(&devcgroup_mutex)) { if ((type & DEVCG_DEV_BLOCK) && !(ex->type & DEVCG_DEV_BLOCK)) continue; if ((type & DEVCG_DEV_CHAR) && !(ex->type & DEVCG_DEV_CHAR)) -- 2.24.1