summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorUlf Carlsson <md1ulfc@mdstud.chalmers.se>1999-05-12 21:57:49 +0000
committerUlf Carlsson <md1ulfc@mdstud.chalmers.se>1999-05-12 21:57:49 +0000
commit6169897dfc815d9066084d84b7d6affab525686e (patch)
treea589af1abe871abda8a140dca9943477e85daa38 /arch
parentbeb58ec24c25e84d5644f442d992161eeb732e3a (diff)
I think I solved the cache index wrap around problems in a correct way now. They
should not happen any more.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/sgi/kernel/indy_sc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/mips/sgi/kernel/indy_sc.c b/arch/mips/sgi/kernel/indy_sc.c
index 1d58ab7b2..2aff56637 100644
--- a/arch/mips/sgi/kernel/indy_sc.c
+++ b/arch/mips/sgi/kernel/indy_sc.c
@@ -1,4 +1,4 @@
-/* $Id: indy_sc.c,v 1.7 1999/05/07 22:25:11 ulfc Exp $
+/* $Id: indy_sc.c,v 1.8 1999/05/10 17:40:16 ulfc Exp $
*
* indy_sc.c: Indy cache managment functions.
*
@@ -70,7 +70,10 @@ static void indy_sc_wback_invalidate(unsigned long addr, unsigned long size)
#endif
/* Which lines to flush? */
first_line = SC_INDEX(addr);
- last_line = SC_INDEX(SC_ROUND(addr + size));
+ if (size <= SC_LINE)
+ last_line = SC_INDEX(addr);
+ else
+ last_line = SC_INDEX(addr + size - 1);
__save_and_cli(flags);
if (first_line <= last_line) {