Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp842554yba; Wed, 24 Apr 2019 10:28:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqyZ9eeWwUozd7eby2/VN6l9megRno1vR8mqhCHqCwTvZ4N9ivSOAdqeCnVlTc4cEXaONL61 X-Received: by 2002:a63:720c:: with SMTP id n12mr31362101pgc.348.1556126924258; Wed, 24 Apr 2019 10:28:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556126924; cv=none; d=google.com; s=arc-20160816; b=Aib2ZtVtgUKodi8x5rzVGZXUSlfe4x11EoCrLgo+iVgW4cOTR8A1oOAonxqt1uOtxG p6PecyVw2bchptsKbfDyzJHgEEmevoNIE/MyIMNJbthzqDEpyu6TewwfQBoY6PP5Y4Il /vYia5qxzmv96f1mLm6LKPzDL2kmzVjvf8NIWpS54xrfye63jzutWJKjiG+p9XMnKS+U 8uRy2oM7FP0po6In9EdYnSumbWTwRa+3guuU93ymlKhiPNz66C7mn7iUA4nznxzD7pc5 ggaZw2AfBDi5RVDPrLRfa87kK3LnXka1pPe46VdJuBUnm6N/JTvcyQrUdJuMPIubXh+b EmFQ== 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=8w7B5cmat8UlnVJdyFYudBDWZjtgK/Kc4lEcr8tiB2I=; b=xY/0dN3tN+EQvCIwcdututf4CYQpGftlL6T+xJfVbQ0d0iasiMzTNpZ1m6bnbvNSPz ipUw0Aj+4LAnR2XWcDqMynk7EagR7kqvCByCGGYUIr/WKysj4x/6qVRtoQbJmgW38ohp a9X/Kcdwtqazrt4QWIz7KFYtXCCB/kTANN5rQnlOhyWyLCHwY2Z1oHRyASSa5EKmz9/h 9fBuNOL26k87dnpl+INs7+73kH51ZiTnlobedmKkOr1Dryl9+oUPfHBziBgGlzPtzRnp yvN4SA3FBXj3YyzbU8Or1ED2AuzCzQmb5SpdXSlDpRf2q3QeOxaUeR2qCo8lOMpJD96w WyXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="D+/H3C2L"; 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 143si17617301pga.118.2019.04.24.10.28.28; Wed, 24 Apr 2019 10:28:44 -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="D+/H3C2L"; 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 S2390068AbfDXRZi (ORCPT + 99 others); Wed, 24 Apr 2019 13:25:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:51546 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389695AbfDXRZf (ORCPT ); Wed, 24 Apr 2019 13:25:35 -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 11DE420835; Wed, 24 Apr 2019 17:25:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556126734; bh=2SErRLCqs0eCxuxqFUVpnt/ed7rfWF9J62ePGQWR4as=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D+/H3C2LuBjG4pHlAe2Yf+8nhRRE0wgE5nSXwjuWBRtVdufBNhLqG35rGUmzw6bJ4 y6USJwSdnBRllN7+V1hbbXNJiRYbGKEReD8zsyNX3WraSrgdr0nraoRevZTY7bwJkg HEXzArrL1widReBu7gwcrhjgb4m0GLXYXWamnquQ= 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.9 40/44] device_cgroup: fix RCU imbalance in error case Date: Wed, 24 Apr 2019 19:10:18 +0200 Message-Id: <20190424170901.216160996@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170839.924291114@linuxfoundation.org> References: <20190424170839.924291114@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 @@ -568,7 +568,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: