diff options
author | Ulf Carlsson <md1ulfc@mdstud.chalmers.se> | 1999-05-12 21:57:49 +0000 |
---|---|---|
committer | Ulf Carlsson <md1ulfc@mdstud.chalmers.se> | 1999-05-12 21:57:49 +0000 |
commit | 6169897dfc815d9066084d84b7d6affab525686e (patch) | |
tree | a589af1abe871abda8a140dca9943477e85daa38 /arch | |
parent | beb58ec24c25e84d5644f442d992161eeb732e3a (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.c | 7 |
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) { |