Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1354573yba; Wed, 24 Apr 2019 20:54:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqy8FNielDJsaXJLlrXhlWE5tY1uJ97LpXjAevPKhBl1NaCcxQhjeWpTpjb3Lr3UINYjJ8yo X-Received: by 2002:aa7:982f:: with SMTP id q15mr5825495pfl.244.1556164450625; Wed, 24 Apr 2019 20:54:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556164450; cv=none; d=google.com; s=arc-20160816; b=MGFFr94Ob5Pl9D9CwBnd5kqLfjx0HPNhSEGNsy45/sS7T4hWHGs0Ix8uwKH9cqe4Zs bHExgUIj3C6tmOzBGJtJ4ziJH8nk/DNu36b9F5mz276gM89xC0ztpCs1jmyv2S7joGJ2 G7pu0XXgURWtipVNigO9X6TVM8WHLCQmBeqbS1hOeY1MVAw+7C1Wg7STs5au28HsAWGe QUlJXgN+m8kr4fUwGGsH8jL6RsbcgEQ2bzE0moWIr7KUTze1JHsVT3HGwyKp83ORWccH qlQ/2jopC8l8Gc7+FL/DiLwyLDFA8ss4QxokAQrz7KOGj4DDgqYHd+P+Xj7nSAucNUFM 3YuQ== 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=7LDpmWxxBmFbIxcZuXsuvg+OasuXUhOW7Lp5IQakUG8=; b=kMQyBc5qi1ZpkxcM2Ci3bTY5XHIWMiU9u/ya7beRguBpA4VNJc4vfx/6kJYeIie5lZ HZIfFUIU3xFMS44tuzc2d7lwg8ABOCZHrSieR8dRlMHM5PORAX8N4dBXtMU1jtmLhkOU RiGJgPcAxD0yHhR2AST5A5y6jN9tDznY3NUxxuitpbQoy0srq6j6JlWj7CK13r1EYsfI 5sU36Yos21spIVRdvx6DHXoHWct1jQL2yI9Vh1J4chIL7qPuH5mPoJlXdVCapENIZaOI dDLovRNMRd/TY0Ls+KlKCwbeiitVsshBuVc5NMwlsPVunUAH38ba5VqPEroljIIbHJZo hbxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Oq7bhHqT; 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 h1si10257484pgk.39.2019.04.24.20.53.55; Wed, 24 Apr 2019 20:54:10 -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=Oq7bhHqT; 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 S2391389AbfDXRv3 (ORCPT + 99 others); Wed, 24 Apr 2019 13:51:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:54940 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390731AbfDXR2j (ORCPT ); Wed, 24 Apr 2019 13:28:39 -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 2FC2221903; Wed, 24 Apr 2019 17:28:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556126918; bh=rzs5XJUYSb8zmSaJNaz3E6Icm+WXTTSI3EwdVIPc5gI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Oq7bhHqTh1jBNlKl/yXLOpNK9jUa9b6xmEg+ChF4vX7bYts7kx+JScGwlPIz1A7N3 XMT+McT9RWN0gS01nO/CmgaD/10IEdwxGVRXxQynCBZzJ8bSm1orjN8iga1PWivcJi I8e1PX5C65SNmBwjrUIgsskEji5MT20sHrxhBTgc= 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.14 62/70] device_cgroup: fix RCU imbalance in error case Date: Wed, 24 Apr 2019 19:10:22 +0200 Message-Id: <20190424170918.715478731@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170906.751869122@linuxfoundation.org> References: <20190424170906.751869122@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 @@ -569,7 +569,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: