Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2252251imm; Mon, 28 May 2018 04:49:14 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpQ3OBswTwr9SLY/cNRxJ7jj8OcBNoq5yjm3Wdo6tLd7IxV4HIm4y9FlQKzzw8S2Bh274lT X-Received: by 2002:a17:902:41:: with SMTP id 59-v6mr13469525pla.345.1527508154510; Mon, 28 May 2018 04:49:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527508154; cv=none; d=google.com; s=arc-20160816; b=tQvJP4jjKdj0yRUgSpx1v6B6Ew5Mh+AMRQZQYfFyfPOgR8a+W9LBHQrCjfLY3c4qoo qK96se9YXRB0Lq2K0VoXbEL1wAag2Uu7dcbk3WGyc9M/IETyEm1yHeXu0MbEzITokqZN DawaB8MQ9oqvdLyuRg6l/NAtK37IvbyGG8QP+HF5KLJjWLtpuy93sSOo3Dyn/A5kCMTG OKhOaX94l4VkjLVKdRqEbjed4FLn/TdNQneN/AOLMKBCB6vy8IGX7YDHFzVBscPZpLk/ s1upiA1y1zqgLSkp5T++rCAXPaE4FU7eyHhH54qK1W/fJQelEcTFb4torVeuuZgHl22L 9LsQ== 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=pR7I3mMMTX+UB8hCGbs0uDrQpc8DCyRDh2rimwoG1J4=; b=irhO8/tD7Q9bJ/Vy6E/wtCcDrFbkQLypGY34XBc+hUEtyHwrKn9goSfxCSxIpMhrsb HbrI+DMl3HktkTwCMRbF2TEq4s6rVRqkgFbOFi/HLkKhQQ8wuIH1qdfn/82tvrMHpVtr VkD2nFzfUlqGRgz75CtcQxip4X42rmXJvJZjh+2lC4RDp8Ubx7/fExO7yeTph9R9mgl1 R1UbW193ohoAeEjDwAhxAzBO4s8vuwGBT1V2+IfNNDI5fF06PKz7bhjkSd5h0Prp4i3I ErtOxup8o9BpxrvQTi0S39yd1o34p3cbwpsARDdAv5jULyFehFkBAfUpESZVhm7fgEnU TnvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BDFro8fB; 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 u9-v6si23488186pgv.313.2018.05.28.04.48.59; Mon, 28 May 2018 04:49:14 -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=BDFro8fB; 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 S1423940AbeE1LKo (ORCPT + 99 others); Mon, 28 May 2018 07:10:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:58570 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423904AbeE1LKe (ORCPT ); Mon, 28 May 2018 07:10:34 -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 002BB2088E; Mon, 28 May 2018 11:10:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505833; bh=l+lQNF1si0by3prFYQohrSgE4EZFRNLk8rXa1vXpytU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BDFro8fBk59BAxSZsPnszj0YPLuGli+K+JPtWf0Or6uumqrVgs2ocyej+l77vd8/y cuKihKRmVPWE53qcLWxMHnMwP17Tt7eYkzaEn/gcuywNsKeqPZkFYirsvAzYh1BfDL C8wPyTo4fSv05ktGCGIsSjz2v6g1Mg/gIXGClYaw= 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.16 143/272] cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path Date: Mon, 28 May 2018 12:02:56 +0200 Message-Id: <20180528100253.032449148@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100240.256525891@linuxfoundation.org> References: <20180528100240.256525891@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.16-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;