Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1319409yba; Wed, 24 Apr 2019 20:01:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqxL+yA7V5xFA93KgJBKG4P/NTVpoHO8LR5WOI1Sfk6OvaD765vIK9QVtjmPWe811Z6Z+4f7 X-Received: by 2002:a63:fc62:: with SMTP id r34mr46176pgk.89.1556161272154; Wed, 24 Apr 2019 20:01:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556161272; cv=none; d=google.com; s=arc-20160816; b=WLWukjifmWNzcQaeCaU9krroj/3CZaHe07ektBsK+mN2oD+9W0ESWgm9xroZDtHF7g HqCAN7ueOLOAsL1BYZvh1gHfiQl05M2h07GkzwvXR8kzb9tKQTqTn7iAraFRAgU8hBTp lcSQTo4KrinlKKGMbYl++Rsh3rNpzhO+gSacJM/1yvZK5w5332NDASWWs3CZV5cwkOvO bPelXfqTkYpN+4KIn63gRGBfjHMq++hdV9gyLsst+BUCZDtKxcYIPsTMczNr/vhQFEel yNHjFbGpgFctDhWQQnAB59NT9HZpkH3ivNv/qqXHUFa0dSyyT1xP9jYOLhiJZCuftdNv tYdw== 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=W03wqNcYlgZHbbK824ZHWGcW8BcF4vwre8+IKCaQGj7JuBbhGGm1NjDtcEWt6BzbCf /qMj/+H3zwtqd67Tixti+YIxGMsIDHmNyEyqFV56Gu678Nc/Q0Vja/DJKJ0EbF94Uv18 cnIdjJ0bFkdPmN9to/ew1YGi9ZV2E9KlCFm4xf4Ait91dhTbDxldhUwTxIL7o0PzGCYB YHNt51L94uDj73T28p0mMyYTWyAN2hoPkMjfG5+lxCwrVu9wckCva4LfdjoMBOJO0Pz2 I/BeGQum67pMfmv13IjLxSLoVRcFbirB/BwhKvU6QQ5R07UgUM9bS4AWF9S9hh0Xuli9 WYWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=NnLzEwJP; 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 x4si20325701plo.203.2019.04.24.20.00.16; Wed, 24 Apr 2019 20:01:12 -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=NnLzEwJP; 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 S2392376AbfDXRiP (ORCPT + 99 others); Wed, 24 Apr 2019 13:38:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:37384 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403987AbfDXRiN (ORCPT ); Wed, 24 Apr 2019 13:38:13 -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 E802E218B0; Wed, 24 Apr 2019 17:38:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556127492; bh=b+oR/mK6zwMUE6kxKjk4NmNv54U9v+ROyYUlUBBLufM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NnLzEwJPueNu1CuhUK35udzIEHxaNmK/7c/czWxJPcZnKs2XE7SL/XoO+JvoHgQ73 RaUoDIPv0/CUovRwEEIULZGa1W/+qx8MckBA62IEoKoY3oi0dE5cnsw8lRPdTho4/w ERGxx3fRohwmPmwVNposqiSKSvILruFvQ0xBRW6Y= 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 5.0 110/115] device_cgroup: fix RCU imbalance in error case Date: Wed, 24 Apr 2019 19:10:46 +0200 Message-Id: <20190424170931.112799075@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170924.797924502@linuxfoundation.org> References: <20190424170924.797924502@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: