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 files changed, 6 insertions(+), 3 deletions(-) diff -puN arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c~altix-06 arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c --- 25/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c~altix-06 2004-02-02 23:19:48.000000000 -0800 +++ 25-akpm/arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c 2004-02-02 23:19:48.000000000 -0800 @@ -23,6 +23,7 @@ bridge_ate_t pcibr_flags_to_ate(pcibr_so 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 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); _