Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp2618752pxu; Mon, 7 Dec 2020 10:58:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTDYd9CuOX/gu4+q9EceWx/kXl/wxLjG1uVmeEE88nxP0UdbSmSUvasg3hsZto6BpT2/rE X-Received: by 2002:a17:906:a8e:: with SMTP id y14mr17994059ejf.47.1607367508889; Mon, 07 Dec 2020 10:58:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607367508; cv=none; d=google.com; s=arc-20160816; b=Uq7/5yZHzCTb6MONJV/0JVxQbaF48htWYF0j1WVqVbuFjTcOYZDeL5B727sk/5QswQ dCTLED+MqxjSgBKpopYiq5tGgDZQhRMJfHi+l9FOows4494geTwt7kauns3er13ZBQh1 0AcRtJ1zb1D4VH6Nr0xJZLDYtIGQdY4WIjpegBJBmN/we/cvX3nr1TwNvFwnQu/aDXdQ MxtmoOD1IRHDWfFN3w5mhdXtEDsmLaYYzwgXG1ay4zO5hhOidf0G0e4Qsf3mzPBc9aMT uzws0muZlltJn6FWpT2kElvgO3QCFOlDbAtMIweLgpFNHAvVfqMlz1JcUcrgW/qrj/tg QfUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:dmarc-filter :sender:dkim-signature; bh=V/jut6x6n1hK5h585Jxt93qXQd0uzT2fjLNylxsE17Y=; b=C5T/HmLKWiRghYfVK3gI/kxIOpUclOkui5icM/gRzGQq+1JjliHFJQPYKsH2iAfJ58 SFpyUE6okEQ+6hLg7uRfDBwi2S7gbl0rpqOoYDpeKiQ26WThh5odqWdI1wfa2DeGMF4J 5/vfsdcPEwfaAtp1sO2zMnk4GUmbuWPy6j1Wmqo10hUyqpR8snPZj3RZMQOs9wqbf7dG i2xiK0YpkQABUtHNQ5RHoYyKmbwhMhYrr92l+pHHhxpYqBA5E0g2AIxezopVkc7aQtMX J0SDelGryJyMyXtektZ8D/zbEd7O6YnSfpOpw2ihtXoNvKTJB9RIDmlvC89kK/dNsIis J7CQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=AMEHBoXv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c23si1092110edv.521.2020.12.07.10.58.05; Mon, 07 Dec 2020 10:58:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=AMEHBoXv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726394AbgLGSxv (ORCPT + 99 others); Mon, 7 Dec 2020 13:53:51 -0500 Received: from so254-31.mailgun.net ([198.61.254.31]:11639 "EHLO so254-31.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725994AbgLGSxu (ORCPT ); Mon, 7 Dec 2020 13:53:50 -0500 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1607367206; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=V/jut6x6n1hK5h585Jxt93qXQd0uzT2fjLNylxsE17Y=; b=AMEHBoXvci0pkKcAC5hnE/LwkEmfonFhKA+QKKMPDMDEjjGMsR4PdybBfPxYjLnJnwhv8PQH e3oexnLN+FE5X5Y9RnV2hVxi0FGHmOgwZatnF/h1ie3siaJuYDzPitcdCSDFOfEpCM++7dCd OaXYY7cyh4pZEtg0+PNWxb09WoY= X-Mailgun-Sending-Ip: 198.61.254.31 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n05.prod.us-east-1.postgun.com with SMTP id 5fce7a21b50fb3818af7c0a1 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 07 Dec 2020 18:53:21 GMT Sender: manafm=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 1F5A4C43461; Mon, 7 Dec 2020 18:53:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from codeaurora.org (unknown [202.46.22.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: manafm) by smtp.codeaurora.org (Postfix) with ESMTPSA id BB323C433CA; Mon, 7 Dec 2020 18:53:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org BB323C433CA Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=manafm@codeaurora.org From: Manaf Meethalavalappu Pallikunhi To: Zhang Rui , Eduardo Valentin , Daniel Lezcano , Amit Kucheria , Ram Chandrasekar Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Manaf Meethalavalappu Pallikunhi Subject: [PATCH v2] drivers: thermal: Add NULL pointer check before using cooling device stats Date: Tue, 8 Dec 2020 00:23:01 +0530 Message-Id: <1607367181-24589-1-git-send-email-manafm@codeaurora.org> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There is a possible chance that some cooling device stats buffer allocation fails due to very high cooling device max state value. Later cooling device update sysfs can try to access stats data for the same cooling device. It will lead to NULL pointer dereference issue. Add a NULL pointer check before accessing thermal cooling device stats data. It fixes the following bug [ 26.812833] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004 [ 27.122960] Call trace: [ 27.122963] do_raw_spin_lock+0x18/0xe8 [ 27.122966] _raw_spin_lock+0x24/0x30 [ 27.128157] thermal_cooling_device_stats_update+0x24/0x98 [ 27.128162] cur_state_store+0x88/0xb8 [ 27.128166] dev_attr_store+0x40/0x58 [ 27.128169] sysfs_kf_write+0x50/0x68 [ 27.133358] kernfs_fop_write+0x12c/0x1c8 [ 27.133362] __vfs_write+0x54/0x160 [ 27.152297] vfs_write+0xcc/0x188 [ 27.157132] ksys_write+0x78/0x108 [ 27.162050] ksys_write+0xf8/0x108 [ 27.166968] __arm_smccc_hvc+0x158/0x4b0 [ 27.166973] __arm_smccc_hvc+0x9c/0x4b0 [ 27.186005] el0_svc+0x8/0xc Signed-off-by: Manaf Meethalavalappu Pallikunhi --- drivers/thermal/thermal_sysfs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c index 473449b..10ca4f5 100644 --- a/drivers/thermal/thermal_sysfs.c +++ b/drivers/thermal/thermal_sysfs.c @@ -827,6 +827,9 @@ void thermal_cooling_device_stats_update(struct thermal_cooling_device *cdev, { struct cooling_dev_stats *stats = cdev->stats; + if (!stats) + return; + spin_lock(&stats->lock); if (stats->state == new_state) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project