Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35ab0e88 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Fix race in the accessed/dirty bit handlers
parents 44f329ab d8117ce5
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -561,11 +561,12 @@ ENTRY(dirty_bit)
	;;					// avoid RAW on r18
	mov ar.ccv=r18				// set compare value for cmpxchg
	or r25=_PAGE_D|_PAGE_A,r18		// set the dirty and accessed bits
	tbit.z p7,p6 = r18,_PAGE_P_BIT		// Check present bit
	;;
	cmpxchg8.acq r26=[r17],r25,ar.ccv
(p6)	cmpxchg8.acq r26=[r17],r25,ar.ccv	// Only update if page is present
	mov r24=PAGE_SHIFT<<2
	;;
	cmp.eq p6,p7=r26,r18
(p6)	cmp.eq p6,p7=r26,r18			// Only compare if page is present
	;;
(p6)	itc.d r25				// install updated PTE
	;;
@@ -626,11 +627,12 @@ ENTRY(iaccess_bit)
	;;
	mov ar.ccv=r18				// set compare value for cmpxchg
	or r25=_PAGE_A,r18			// set the accessed bit
	tbit.z p7,p6 = r18,_PAGE_P_BIT	 	// Check present bit
	;;
	cmpxchg8.acq r26=[r17],r25,ar.ccv
(p6)	cmpxchg8.acq r26=[r17],r25,ar.ccv	// Only if page present
	mov r24=PAGE_SHIFT<<2
	;;
	cmp.eq p6,p7=r26,r18
(p6)	cmp.eq p6,p7=r26,r18			// Only if page present
	;;
(p6)	itc.i r25				// install updated PTE
	;;
@@ -680,11 +682,12 @@ ENTRY(daccess_bit)
	;;					// avoid RAW on r18
	mov ar.ccv=r18				// set compare value for cmpxchg
	or r25=_PAGE_A,r18			// set the dirty bit
	tbit.z p7,p6 = r18,_PAGE_P_BIT		// Check present bit
	;;
	cmpxchg8.acq r26=[r17],r25,ar.ccv
(p6)	cmpxchg8.acq r26=[r17],r25,ar.ccv	// Only if page is present
	mov r24=PAGE_SHIFT<<2
	;;
	cmp.eq p6,p7=r26,r18
(p6)	cmp.eq p6,p7=r26,r18			// Only if page is present
	;;
(p6)	itc.d r25				// install updated PTE
	/*