Commit 0070ed8c authored by Zhang Rui's avatar Zhang Rui Committed by Wang, Xiaolong
Browse files

powercap: intel_rapl: Fix a NULL pointer dereference

mainline inclusion
from mainline-v6.9-rc1
commit 2d1f5006ff95770da502f8cee2a224a1ff83866e
category: bugfix
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/IA85P6
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2d1f5006ff95770da502f8cee2a224a1ff83866e



--------------------------------

A NULL pointer dereference is triggered when probing the MMIO RAPL
driver on platforms with CPU ID not listed in intel_rapl_common CPU
model list.

This is because the intel_rapl_common module still probes on such
platforms even if 'defaults_msr' is not set after commit 1488ac99
("powercap: intel_rapl: Allow probing without CPUID match"). Thus the
MMIO RAPL rp->priv->defaults is NULL when registering to RAPL framework.

Fix the problem by adding sanity check to ensure rp->priv->rapl_defaults
is always valid.

Intel-SIG: commit 2d1f5006ff95 powercap: intel_rapl: Fix a NULL pointer dereference
Backport Intel RAPL driver bugfixes up to upstream v6.9.

Fixes: 1488ac99 ("powercap: intel_rapl: Allow probing without CPUID match")
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
Cc: 6.5+ <stable@vger.kernel.org> # 6.5+
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
[ Xiaolong Wang: amend commit log ]
Signed-off-by: default avatarXiaolong Wang <xiaolong.wang@intel.com>
parent ce935614
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -759,6 +759,11 @@ static int rapl_config(struct rapl_package *rp)
	default:
		return -EINVAL;
	}

	/* defaults_msr can be NULL on unsupported platforms */
	if (!rp->priv->defaults || !rp->priv->rpi)
		return -ENODEV;

	return 0;
}