Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp862706yba; Wed, 24 Apr 2019 10:48:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqwqY96Cyp/lJsRqa+l/Dqy1Y8biLeZXLVrMcO1HV4o1XM4wm/2xQKGdRp7msRl1+oARMwJ8 X-Received: by 2002:aa7:8e14:: with SMTP id c20mr2943905pfr.14.1556128137028; Wed, 24 Apr 2019 10:48:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556128137; cv=none; d=google.com; s=arc-20160816; b=wZ+4AoNeXq2R3R6xccmel6EhQd8BmiUTKuLkCEUqPi3z3W2scU3NBjYjgoJcSOEC8c W0ZA4ZRFUeBdtJjSmFqKEpST3PB/21EXmKSrb5kCJTJ13/rYI7o6mto6mPvLWQha2FQ7 6Rp0DEe4xzW094N94KAjKVEyNCqS4BuHGslPt0M1G/HjqcU8H/9OWpWqDKmQCRnWjOf4 C6THWvdGA7w5GErudTRGKb66EUZ9psnuTXPBja5xRESwCjGDpMNE1B3KO3jqgYJmglTg j/g6E1ZCS4TBpBf4dztbNenRJbdg5O5f8EMsTdH4/UYLLY0hNrdINg/UG17szL+e6jxH 5qGA== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ssp0GFH0F0E6aDeqwnLfCTN/JbCPj8d19KgqL0RGQDw=; b=NYvdM8xmQEnWYX9Cx3LzbnvDIs9Z6cWLbsczi5vhtJNHKQ0lxhLafPlmsvoBWHrLXv mLwNcodOrBtBb+pSdU69Wvy2K+9tA90mYr2QJNjmkpfVmE5XQmiG9660y9lJCGTrgs9D uf2xIGfaP6FFpK1fK6znS0mJ1cViVvcYv9D9g2tov4US9uh2hat65rO4veviXeHNYZvu oCr/daRJkMfILRJTWqaFUiVse66EkxfoU/iefSd2F8hMJ3cBaeVTpZsr04R75rXj+U7E xV2rnLDnKebUANaJCJG56NbBq1z8XCkpr4yCGSMOmauzDTgdP8/xeCqvxs8K9oFG4CLw hsTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EVq4bfix; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b8si19851258pfd.55.2019.04.24.10.48.42; Wed, 24 Apr 2019 10:48:57 -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=@kernel.org header.s=default header.b=EVq4bfix; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391222AbfDXRdC (ORCPT + 99 others); Wed, 24 Apr 2019 13:33:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:59852 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390836AbfDXRdA (ORCPT ); Wed, 24 Apr 2019 13:33:00 -0400 Received: from localhost (62-193-50-229.as16211.net [62.193.50.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A1A5F21903; Wed, 24 Apr 2019 17:32:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556127180; bh=b+oR/mK6zwMUE6kxKjk4NmNv54U9v+ROyYUlUBBLufM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EVq4bfixzfphkRVrUR7fhK/xzW+xGeI1ItuHVCiH70ONubWohFPDYZGS8lVyw6576 uzDsX/uYsYdi0fjsWmQw9bTF160yrDf5e44tBmH8zmikzq3vO0aD3grChx9pmTLytl 4GFveqifQ3NKrJTJO5JqjMD7I6uwvpWpCn4286uI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jann Horn , Michal Hocko , Tejun Heo Subject: [PATCH 4.19 90/96] device_cgroup: fix RCU imbalance in error case Date: Wed, 24 Apr 2019 19:10:35 +0200 Message-Id: <20190424170925.909885307@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170919.829037226@linuxfoundation.org> References: <20190424170919.829037226@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jann Horn commit 0fcc4c8c044e117ac126ab6df4138ea9a67fa2a9 upstream. When dev_exception_add() returns an error (due to a failed memory allocation), make sure that we move the RCU preemption count back to where it was before we were called. We dropped the RCU read lock inside the loop body, so we can't just "break". sparse complains about this, too: $ make -s C=2 security/device_cgroup.o ./include/linux/rcupdate.h:647:9: warning: context imbalance in 'propagate_exception' - unexpected unlock Fixes: d591fb56618f ("device_cgroup: simplify cgroup tree walk in propagate_exception()") Cc: stable@vger.kernel.org Signed-off-by: Jann Horn Acked-by: Michal Hocko Signed-off-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman --- security/device_cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -560,7 +560,7 @@ static int propagate_exception(struct de devcg->behavior == DEVCG_DEFAULT_ALLOW) { rc = dev_exception_add(devcg, ex); if (rc) - break; + return rc; } else { /* * in the other possible cases: