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: Andreas Krebbel <Andreas.Krebbel@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
c985cb37f1
Коммит
d18f99c28b
|
@ -59,8 +59,8 @@ enum {
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CACHE_TI_UNIFIED = 0,
|
CACHE_TI_UNIFIED = 0,
|
||||||
CACHE_TI_INSTRUCTION = 0,
|
CACHE_TI_DATA = 0,
|
||||||
CACHE_TI_DATA,
|
CACHE_TI_INSTRUCTION,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cache_info {
|
struct cache_info {
|
||||||
|
@ -121,7 +121,10 @@ static int __init cache_add(int level, int private, int type)
|
||||||
cache = kzalloc(sizeof(*cache), GFP_KERNEL);
|
cache = kzalloc(sizeof(*cache), GFP_KERNEL);
|
||||||
if (!cache)
|
if (!cache)
|
||||||
return -ENOMEM;
|
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->size = ecag(EXTRACT_SIZE, level, ti);
|
||||||
cache->line_size = ecag(EXTRACT_LINE_SIZE, level, ti);
|
cache->line_size = ecag(EXTRACT_LINE_SIZE, level, ti);
|
||||||
cache->associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti);
|
cache->associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче