Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp839128yba; Wed, 24 Apr 2019 10:25:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqwXR5x/iYHtpZuHntWbjqyQHNFQF6Bs1ijS1aKqrDj4+BuYREuArZYoFkvoAvs/KG7FHoro X-Received: by 2002:a17:902:8c89:: with SMTP id t9mr34566891plo.265.1556126719663; Wed, 24 Apr 2019 10:25:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556126719; cv=none; d=google.com; s=arc-20160816; b=vf9XgrysfPgF7CLkeEZcLVB7Ngg4SkLkpzKq9mSPM1I09fxB+JhTG7Dh0xrZVztVzx eVZIBJQwJV1Bfb041hWwFZLGLVNTRSPmNvb9YzGy8XeahHifykRmcIT19U/kdrcY2PPh 8+ChOLb8xMEHoX9cMvyTaGBuQRCc7ALH5gOq3g7rtLQB0yMw3o7sXQGuno45g/fzaQzy +piLtLYuN+ZubYttMEd2NPXc6pFf1alG7gPSmh1E08s1WO7bm/wiBWAafsTbpfTEscHH CXbd0INIhwaaZuNL2pfsTH2Y2RZFwxggauQp3JA2nMtUIQie/WeRxZF2bivONdwE6VCL v/QA== 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=uwTRo63clJJNdK4Yt6NYCUqB2UHEus8zmuoiXFaFoNKZ3z8quEL4PEQg/rAJ5z6d2e u9Sx9eP1KwrU1c5uReRr83m0tuBgYtyutQNZdhuMDVlOQiPjXmMQSzXMaKVrT788Q/Qr outvwzSGhBKVrOfK06GQOwWFwshuHMlOQPXIiCwOmb0Kvm+8uPxTSHtX8/P0SMVUWYI/ oF2V2W4r5vcKhs4G+IMGhT9wYAYkPkaoRsWU9lvo8o7yFh6F2ebvK77Ehr7IPhL/L0A9 utU0+BcX9FB7MFb4OyplaYVp0q3TfSezYrC50pneAgQc0Wz4PkzSrpHT3d8KRNUttdgm 6/OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hwrNJ8nU; 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 d6si19585872pfg.66.2019.04.24.10.25.04; Wed, 24 Apr 2019 10:25:19 -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=hwrNJ8nU; 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 S2389695AbfDXRX3 (ORCPT + 99 others); Wed, 24 Apr 2019 13:23:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:49142 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389682AbfDXRX0 (ORCPT ); Wed, 24 Apr 2019 13:23:26 -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 8CEA5205ED; Wed, 24 Apr 2019 17:23:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556126606; bh=2SErRLCqs0eCxuxqFUVpnt/ed7rfWF9J62ePGQWR4as=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hwrNJ8nUNg4p6tCT6tGDiae7dIBNZYjMRLbkEP+BNac/t72g1POVXmZAp4km2qFAF WB2BDE0D7cPP3E5LU4e/iERgbVJI3P/BQf1zJruWVkcU1GjpcejTm0xn5cMioUUqIG yd4a3t7ugy1e28wq7LXW0+cQP1NB0e5B+aD/d53w= 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.4 166/168] device_cgroup: fix RCU imbalance in error case Date: Wed, 24 Apr 2019 19:10:10 +0200 Message-Id: <20190424170933.101609252@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170923.452349382@linuxfoundation.org> References: <20190424170923.452349382@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: