fix the fix - do not impose all those extra cache ops on all supersparcs,

only those without external cache
This commit is contained in:
macallan 2007-08-01 00:06:32 +00:00
parent 78302eef99
commit f46b7897c0
2 changed files with 6 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: cpu.c,v 1.204 2007/07/31 05:21:47 macallan Exp $ */
/* $NetBSD: cpu.c,v 1.205 2007/08/01 00:06:32 macallan Exp $ */
/*
* Copyright (c) 1996
@ -52,7 +52,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.204 2007/07/31 05:21:47 macallan Exp $");
__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.205 2007/08/01 00:06:32 macallan Exp $");
#include "opt_multiprocessor.h"
#include "opt_lockdebug.h"
@ -1724,7 +1724,7 @@ static int mxcc = -1;
sc->flags |= CPUFLG_CACHEPAGETABLES;
} else {
#ifdef MULTIPROCESSOR
if (sparc_ncpus > 1)
if ((sparc_ncpus > 1) && (sc->cacheinfo.ec_totalsize == 0))
sc->cache_flush = srmmu_cache_flush;
#endif
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: iommu.c,v 1.87 2007/07/31 05:21:47 macallan Exp $ */
/* $NetBSD: iommu.c,v 1.88 2007/08/01 00:06:32 macallan Exp $ */
/*
* Copyright (c) 1996
@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: iommu.c,v 1.87 2007/07/31 05:21:47 macallan Exp $");
__KERNEL_RCSID(0, "$NetBSD: iommu.c,v 1.88 2007/08/01 00:06:32 macallan Exp $");
#include "opt_sparc_arch.h"
@ -580,7 +580,7 @@ iommu_dmamap_load(bus_dma_tag_t t, bus_dmamap_t map,
return (error);
if ((sc->sc_cachecoherent == 0) ||
(curcpu()->cpu_type == CPUTYP_SS1_MBUS_NOMXCC))
(curcpu()->cacheinfo.ec_totalsize == 0))
cache_flush(buf, buflen); /* XXX - move to bus_dma_sync? */
/*