From f64cae798f7c4505678d33ee54cfa2a8c535ceb2 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Tue, 3 Feb 2004 18:53:13 -0800 Subject: [PATCH] [PATCH] Altix update: pcibr_invalidate_ate check From: Pat Gefre arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c check for pcibr_invalidate_ate 0 used for debugging --- arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c b/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c index e08d74c4146a4..5fc29d9351099 100644 --- a/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c +++ b/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c @@ -23,6 +23,7 @@ bridge_ate_t pcibr_flags_to_ate(pcibr_soft_t, unsigned); bridge_ate_p pcibr_ate_addr(pcibr_soft_t, int); void ate_write(pcibr_soft_t, int, int, bridge_ate_t); +int pcibr_invalidate_ate; /* by default don't invalidate ATE on free */ /* * Allocate "count" contiguous Bridge Address Translation Entries @@ -64,9 +65,11 @@ pcibr_ate_free(pcibr_soft_t pcibr_soft, int index, int count, struct resource *r int status = 0; unsigned long flags; - /* For debugging purposes, clear the valid bit in the ATE */ - ate = *pcibr_ate_addr(pcibr_soft, index); - ate_write(pcibr_soft, index, count, ate & ~ATE_V); + if (pcibr_invalidate_ate) { + /* For debugging purposes, clear the valid bit in the ATE */ + ate = *pcibr_ate_addr(pcibr_soft, index); + ate_write(pcibr_soft, index, count, (ate & ~ATE_V)); + } flags = pcibr_lock(pcibr_soft); status = release_resource(res); -- 2.53.0