From: Mete Durlu Date: Wed, 8 Jan 2025 10:31:27 +0000 (+0100) Subject: s390/topology: Improve topology detection X-Git-Tag: v6.14-rc1~200^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9988df07dbe1ca8282f5ae95f1b534f91bab73fc;p=thirdparty%2Fkernel%2Flinux.git s390/topology: Improve topology detection Add early polarization detection instead of assuming horizontal polarization. Signed-off-by: Mete Durlu Reviewed-by: Heiko Carstens Signed-off-by: Alexander Gordeev --- diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 4f9c301a705b6..39f5ed21f31a6 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c @@ -556,6 +556,16 @@ static void __init alloc_masks(struct sysinfo_15_1_x *info, } } +static int __init detect_polarization(union topology_entry *tle) +{ + struct topology_core *tl_core; + + while (tle->nl) + tle = next_tle(tle); + tl_core = (struct topology_core *)tle; + return tl_core->pp != POLARIZATION_HRZ; +} + void __init topology_init_early(void) { struct sysinfo_15_1_x *info; @@ -575,6 +585,7 @@ void __init topology_init_early(void) __func__, PAGE_SIZE, PAGE_SIZE); info = tl_info; store_topology(info); + cpu_management = detect_polarization(info->tle); pr_info("The CPU configuration topology of the machine is: %d %d %d %d %d %d / %d\n", info->mag[0], info->mag[1], info->mag[2], info->mag[3], info->mag[4], info->mag[5], info->mnest);