| From fa7f3c8ebf160bd8b0f84d8807366e3c50106836 Mon Sep 17 00:00:00 2001 |
| From: Huacai Chen <chenhc@lemote.com> |
| Date: Thu, 16 Mar 2017 21:00:29 +0800 |
| Subject: [PATCH] MIPS: c-r4k: Fix Loongson-3's vcache/scache waysize |
| calculation |
| |
| commit 0be032c190abcdcfa948082b6a1e0d461184ba4d upstream. |
| |
| If scache.waysize is 0, r4k___flush_cache_all() will do nothing and |
| then cause bugs. BTW, though vcache.waysize isn't being used by now, |
| we also fix its calculation. |
| |
| Signed-off-by: Huacai Chen <chenhc@lemote.com> |
| Cc: John Crispin <john@phrozen.org> |
| Cc: Steven J . Hill <Steven.Hill@caviumnetworks.com> |
| Cc: Fuxin Zhang <zhangfx@lemote.com> |
| Cc: Zhangjin Wu <wuzhangjin@gmail.com> |
| Cc: linux-mips@linux-mips.org |
| Cc: stable@vger.kernel.org |
| Patchwork: https://patchwork.linux-mips.org/patch/15756/ |
| Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c |
| index fa7d8d3790bf..320f87e029d7 100644 |
| --- a/arch/mips/mm/c-r4k.c |
| +++ b/arch/mips/mm/c-r4k.c |
| @@ -1542,6 +1542,7 @@ static void probe_vcache(void) |
| vcache_size = c->vcache.sets * c->vcache.ways * c->vcache.linesz; |
| |
| c->vcache.waybit = 0; |
| + c->vcache.waysize = vcache_size / c->vcache.ways; |
| |
| pr_info("Unified victim cache %ldkB %s, linesize %d bytes.\n", |
| vcache_size >> 10, way_string[c->vcache.ways], c->vcache.linesz); |
| @@ -1644,6 +1645,7 @@ static void __init loongson3_sc_init(void) |
| /* Loongson-3 has 4 cores, 1MB scache for each. scaches are shared */ |
| scache_size *= 4; |
| c->scache.waybit = 0; |
| + c->scache.waysize = scache_size / c->scache.ways; |
| pr_info("Unified secondary cache %ldkB %s, linesize %d bytes.\n", |
| scache_size >> 10, way_string[c->scache.ways], c->scache.linesz); |
| if (scache_size) |
| -- |
| 2.12.0 |
| |