
From: Pat Gefre <pfg@sgi.com>

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);

_
