diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index c63cf54c8ebc4b85d9649ba2f2f5bad7821e08a6..30f28b088ab2d2985e8b3093002f666af6f9c296 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -806,7 +806,7 @@ typedef unsigned int slock_t;
 /* On IA64, it's a win to use a non-locking test before the xchg proper */
 #define TAS_SPIN(lock)	(*(lock) ? 1 : TAS(lock))
 #define S_UNLOCK(lock)	\
-	do { _Asm_sched_fence(); (*(lock)) = 0; } while (0)
+	do { _Asm_mf(); (*(lock)) = 0; } while (0)
 
 #endif	/* HPUX on IA64, non gcc */