Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2447655imm; Mon, 28 May 2018 08:15:15 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpzMO+GTGPhyzvKqr4RfdIa9XwUSxdQnW3VABp3y5vdV7QrzoX53WcNsH9FB5XW8Do5A/3j X-Received: by 2002:aa7:8084:: with SMTP id v4-v6mr13874922pff.105.1527520515062; Mon, 28 May 2018 08:15:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527520515; cv=none; d=google.com; s=arc-20160816; b=DQA5cfFiNhEvE12xmzZCEAwP+f+C78LxdUfXrjn7lKmYwL9RxoKkA0vyt3gG8q7H8G 8eQ5UkoseK3OZX2AR73xCurQn8hjJieEDhykSCQXwDoJ0b97mRdXW9Ok2xIyRM+R6zuN F33B4O8EmuTAdjy0yujt3vTzRwF6LXNIM+eErrUalAXB3Rp2X8WekwBs9wNDJZgrejyy Mg6rMmzt4pscIKOiIXqcip8TW2DK6E/a8eDBJ2PMOErHvq/W7YdPhAii04d1Kw7KKPuj Qb5b5mhR62uY/MOOF4i/zGVm5eVVhHziBa2KemeNGE6F9HhzuS2mrhdgBv3KWDn8AUoU 8msA== 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=kE930domp74M6fsNw0Z7SkWOtQ5D0c1EJksIm/vIBpo=; b=QopzaD/Hu2Ecz0WgNW3u0U/emGRH3G23p1jSYLIBioB+0AD6d1f5GnYe+qFc6Y6PEF AspQYwABEkkXguVt0oERl5cvQ+rhp7VKOFAYFTn3yRif1YpaElRZiXuP+2Ti94ANTU+P Ua3b5wSPsOUEToPk+UDjdNX7fr4dPql0+yPKVKWeve88pw91nJp0y1jMCNCK+jahxTsM w8K9gx6YK47x7/Nr4Zi3TF7ospRcxZJ5jj/K19wTk0xl2HnDBlpiszm/HEseLvp0WRZv HBTcs0k7/Jszyl1J0teM4gBRVOTzM/zkf/UM4AxJOKUDc+7Nm+78R6eOm35E3Ccav92U khMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rEr+/GaL; 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 p12-v6si10429785pll.142.2018.05.28.08.14.59; Mon, 28 May 2018 08:15:15 -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=rEr+/GaL; 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 S1166102AbeE1POT (ORCPT + 99 others); Mon, 28 May 2018 11:14:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:42484 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1033611AbeE1KXG (ORCPT ); Mon, 28 May 2018 06:23:06 -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 2467120843; Mon, 28 May 2018 10:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527502985; bh=MnwpJtCQCQqPGxbsvvzex8JSwAfzpD2aDZm+t6pc5XQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rEr+/GaL8wBGq6+jvApT5+w3riXgVkqYD4StRKJdIVg/WEEf0JlB+7qBtFTH/5Kco +8Iozl0a+RkJxULY5wEOAOqRTsMNB8vP3uTLzjUwZVvU+9zsxvoR+SZITmBT7Ji4Y5 uREEXisJ+Ro6k9raB0+eiT7humJrmyUUJSfkkw2Y= 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.4 201/268] cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path Date: Mon, 28 May 2018 12:02:55 +0200 Message-Id: <20180528100225.071400774@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100202.045206534@linuxfoundation.org> References: <20180528100202.045206534@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.4-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 @@ -176,8 +176,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;