Skip to content

Commit 20eab87

Browse files
spandruvadapopcornmix
authored andcommitted
platform/x86/intel-uncore-freq: Fail module load when plat_info is NULL
commit 685f88c upstream. Address a Smatch static checker warning regarding an unchecked dereference in the function call: set_cdie_id(i, cluster_info, plat_info) when plat_info is NULL. Instead of addressing this one case, in general if plat_info is NULL then it can cause other issues. For example in a two package system it will give warning for duplicate sysfs entry as package ID will be always zero for both packages when creating string for attribute group name. plat_info is derived from TPMI ID TPMI_BUS_INFO, which is integral to the core TPMI design. Therefore, it should not be NULL on a production platform. Consequently, the module should fail to load if plat_info is NULL. Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/platform-driver-x86/aEKvGCLd1qmX04Tc@stanley.mountain/T/#u Fixes: 8a54e22 ("platform/x86/intel-uncore-freq: Uncore frequency control via TPMI") Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20250606205300.2384494-1-srinivas.pandruvada@linux.intel.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7b87d18 commit 20eab87

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -467,10 +467,13 @@ static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_
467467

468468
/* Get the package ID from the TPMI core */
469469
plat_info = tpmi_get_platform_data(auxdev);
470-
if (plat_info)
471-
pkg = plat_info->package_id;
472-
else
470+
if (unlikely(!plat_info)) {
473471
dev_info(&auxdev->dev, "Platform information is NULL\n");
472+
ret = -ENODEV;
473+
goto err_rem_common;
474+
}
475+
476+
pkg = plat_info->package_id;
474477

475478
for (i = 0; i < num_resources; ++i) {
476479
struct tpmi_uncore_power_domain_info *pd_info;

0 commit comments

Comments
 (0)