mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 21:20:50 +07:00
s390/cacheinfo: add missing facility check
Git commit d97d929f06
("s390: move cacheinfo sysfs to generic cacheinfo
infrastructure") removed the general-instructions-extension availability
check before the ecag instruction is executed.
Without this check this may lead to crashes on machines without this facility.
Therefore add the check again where needed.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
1a327ffd3d
commit
77bb36e57b
@ -70,6 +70,8 @@ void show_cacheinfo(struct seq_file *m)
|
|||||||
struct cacheinfo *cache;
|
struct cacheinfo *cache;
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
|
if (!test_facility(34))
|
||||||
|
return;
|
||||||
get_online_cpus();
|
get_online_cpus();
|
||||||
this_cpu_ci = get_cpu_cacheinfo(cpumask_any(cpu_online_mask));
|
this_cpu_ci = get_cpu_cacheinfo(cpumask_any(cpu_online_mask));
|
||||||
for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) {
|
for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) {
|
||||||
@ -159,6 +161,8 @@ int populate_cache_leaves(unsigned int cpu)
|
|||||||
union cache_topology ct;
|
union cache_topology ct;
|
||||||
enum cache_type ctype;
|
enum cache_type ctype;
|
||||||
|
|
||||||
|
if (!test_facility(34))
|
||||||
|
return -EOPNOTSUPP;
|
||||||
ct.raw = ecag(EXTRACT_TOPOLOGY, 0, 0);
|
ct.raw = ecag(EXTRACT_TOPOLOGY, 0, 0);
|
||||||
for (idx = 0, level = 0; level < this_cpu_ci->num_levels &&
|
for (idx = 0, level = 0; level < this_cpu_ci->num_levels &&
|
||||||
idx < this_cpu_ci->num_leaves; idx++, level++) {
|
idx < this_cpu_ci->num_leaves; idx++, level++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user