[IA64-SGI] Fix SN PTC deadlock recovery

The patch that added support for a new platform chipset (shub2) broke
PTC deadlock recovery on older versions of the chipset. (PTCs are the
SN platform-specific method for doing a global TLB purge). This
patch fixes deadlock recovery so that it works on both the old & new
chipsets.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>

authored by Jack Steiner and committed by Tony Luck 590711b7 bd1d6e24

+6 -2
+6 -2
arch/ia64/sn/kernel/sn2/ptc_deadlock.S
··· 39 39 mov r8=r0 40 40 41 41 1: 42 + cmp.ne p8,p9=r0,ptc1 // Test for shub type (ptc1 non-null on shub1) 43 + // p8 = 1 if shub1, p9 = 1 if shub2 44 + 42 45 add scr2=ALIAS_OFFSET,piowc // Address of WRITE_STATUS alias register 43 - ;; 44 - ld8.acq scr1=[scr2];; 46 + mov scr1=7;; // Clear DEADLOCK, WRITE_ERROR, MULTI_WRITE_ERROR 47 + (p8) st8.rel [scr2]=scr1;; 48 + (p9) ld8.acq scr1=[scr2];; 45 49 46 50 5: ld8.acq scr1=[piowc];; // Wait for PIOs to complete. 47 51 hint @pause