Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2292007imm; Mon, 28 May 2018 05:31:23 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo/ZEhd8p3wvk1gaMIawEtD7X44Lwr+Q9c4qXOPvu1QOXmoDZeC7W7J1qEMl2T7oQHmaE6n X-Received: by 2002:a62:211c:: with SMTP id h28-v6mr13028025pfh.249.1527510683620; Mon, 28 May 2018 05:31:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527510683; cv=none; d=google.com; s=arc-20160816; b=vtMjTuBBpfQmnEF2ex3ftKv3kKREmYcclYi0nHHqYPJDy5to7LGOrxn+CTet4v8HYw OIRQVpvFCVXY9JpMNNbVSSWDH4MF+nUxE2Pg4Ee8EIsTL+uaXGfjElhawoKh3DEwo6v6 xSseOp4/LRLeNv4kc4PkKIYBMkiFXm0z6aWNCT0qnjVsS9oh7r0hKmuMjohJtTO0yEzO uW0eujIgTOwi5mB1wc5RZgyzANSOen/HjFK2dhyY1LTT+EC1DbS0KpVTPsS1AzOr2oE+ UYs/iMggiI7Zf4vfvag6XgkugvtodBrZgqlZ4aSS984Ez/4HbK2dO9Je4zfT8bRj/8XK SJzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=GI6CP6HPVhGl1Z98J7TDlSElLbhS6uzXpWXjyB4Iz88=; b=tMvWKH7EPVf8cs311ubzvaEwLmtLfbm+KwR3Sw203ud5EMYgUD4o9Yo4NHT+M6Yqn4 YoRd+QLIG2TbN5Ce9wpLCtBtisjqRioYndlvLs6NgnpctlD6rCJICM+UDB8CQN6YyRWI sDJ1UPkKQMg0XiOHwiG5O/tYfkmezR8QhYPa2scjm6CKwQwCtPRcRBpb86U+yUsdUCTs W77e6+mrH8FB3XfthdX5sNckylne/vTWuj6DVY5nxvqjZlkdEdUafIpx+JfTfX1EXeM2 9xEWtEeA0quuwvzpRLrm35X4bXKRU1bzA+sHb2V3qk2f86pEQi6hl+gJLPcQLzhvBG8P NpFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DB271RV5; 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 v40-v6si8117595pgn.467.2018.05.28.05.31.08; Mon, 28 May 2018 05:31:23 -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=DB271RV5; 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 S1164790AbeE1LAe (ORCPT + 99 others); Mon, 28 May 2018 07:00:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:48156 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164726AbeE1LAa (ORCPT ); Mon, 28 May 2018 07:00:30 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (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 DA4EB2087E; Mon, 28 May 2018 11:00:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505230; bh=y386WHqfcPFgCohmtqIKZRHgi1tmgx8lzqTxNk2suRk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DB271RV5ObERGrKm5mPYw5cxb8h5uid35iK8ApGtmFnCC9BaBZvycEmLItSFvZ8hR 3RHxBMDPNySe1C/yPwmvrKzNmQZXsaskJC4ZD5aHaxGRT5wstkA/N5EN6bHwyO2QiF /a7mTE2IsE0cSdAM/FkRZ5Cu81miBK0zH1GBBo7I= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chunyu Hu , Viresh Kumar , "Rafael J. Wysocki" , Sasha Levin Subject: [PATCH 4.14 390/496] cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path Date: Mon, 28 May 2018 12:02:55 +0200 Message-Id: <20180528100336.214312632@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Chunyu Hu [ Upstream commit 55b55abc17f238c61921360e61dde90dd9a326d1 ] Kmemleak reported the below leak. When cppc_cpufreq_init went into failure path, the cpu mask is not freed. After fix, this report is gone. And to avaoid potential NULL pointer reference, check the cpu value first. unreferenced object 0xffff800fd5ea4880 (size 128): comm "swapper/0", pid 1, jiffies 4294939510 (age 668.680s) hex dump (first 32 bytes): 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 .... ........... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] __kmalloc_node+0x278/0x634 [] alloc_cpumask_var_node+0x28/0x60 [] zalloc_cpumask_var+0x14/0x1c [] cppc_cpufreq_init+0xd0/0x19c [] do_one_initcall+0xec/0x15c [] kernel_init_freeable+0x1f4/0x2a4 [] kernel_init+0x18/0x10c [] ret_from_fork+0x10/0x18 [] 0xffffffffffffffff Signed-off-by: Chunyu Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/cpufreq/cppc_cpufreq.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -243,8 +243,13 @@ static int __init cppc_cpufreq_init(void return ret; out: - for_each_possible_cpu(i) - kfree(all_cpu_data[i]); + for_each_possible_cpu(i) { + cpu = all_cpu_data[i]; + if (!cpu) + break; + free_cpumask_var(cpu->shared_cpu_map); + kfree(cpu); + } kfree(all_cpu_data); return -ENODEV;