Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d18f99c2 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

s390/cache: fix data/instruction cache output



The sysfs and procfs output of the instruction and data caches were
wrong: the output of the data cache provided that instruction cache
values and vice versa.
Fix this by using the correct type indication when issueing the
ecag instruction.

Reported-by: default avatarAndreas Krebbel <Andreas.Krebbel@de.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent c985cb37
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -59,8 +59,8 @@ enum {

enum {
	CACHE_TI_UNIFIED = 0,
	CACHE_TI_INSTRUCTION = 0,
	CACHE_TI_DATA,
	CACHE_TI_DATA = 0,
	CACHE_TI_INSTRUCTION,
};

struct cache_info {
@@ -121,7 +121,10 @@ static int __init cache_add(int level, int private, int type)
	cache = kzalloc(sizeof(*cache), GFP_KERNEL);
	if (!cache)
		return -ENOMEM;
	ti = type == CACHE_TYPE_DATA ? CACHE_TI_DATA : CACHE_TI_UNIFIED;
	if (type == CACHE_TYPE_INSTRUCTION)
		ti = CACHE_TI_INSTRUCTION;
	else
		ti = CACHE_TI_UNIFIED;
	cache->size = ecag(EXTRACT_SIZE, level, ti);
	cache->line_size = ecag(EXTRACT_LINE_SIZE, level, ti);
	cache->associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti);