Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

platform/x86/intel-uncore-freq: Don't present root domain on error

If none of the clusters are added because of some error, fail to load
driver without presenting root domain. In this case root domain will
present invalid data.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Fixes: 01c10f88c9b7 ("platform/x86/intel-uncore-freq: tpmi: Provide cluster level control")
Cc: <stable@vger.kernel.org> # 6.5+
Link: https://lore.kernel.org/r/20240415215210.2824868-1-srinivas.pandruvada@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

authored by

Srinivas Pandruvada and committed by
Hans de Goede
db643cb7 4acf5cac

+7
+7
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c
··· 240 240 bool read_blocked = 0, write_blocked = 0; 241 241 struct intel_tpmi_plat_info *plat_info; 242 242 struct tpmi_uncore_struct *tpmi_uncore; 243 + bool uncore_sysfs_added = false; 243 244 int ret, i, pkg = 0; 244 245 int num_resources; 245 246 ··· 385 384 } 386 385 /* Point to next cluster offset */ 387 386 cluster_offset >>= UNCORE_MAX_CLUSTER_PER_DOMAIN; 387 + uncore_sysfs_added = true; 388 388 } 389 + } 390 + 391 + if (!uncore_sysfs_added) { 392 + ret = -ENODEV; 393 + goto remove_clusters; 389 394 } 390 395 391 396 auxiliary_set_drvdata(auxdev, tpmi_uncore);