Skip to contentSkip to conversation

Update sparse tree with "read_zero_pagealigned() locking fix" patch from 2.6.18.8 tree

PATCH New S.Çağlar Onur 1 participant 1 message Jan 17, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 3/7 Update sparse tree with "read_zero_pagealigned() locking fix" patch from 2.6.18.8 tree

Update sparse tree with "read_zero_pagealigned() locking fix" patch from 2.6.18.8 tree [1]

[1] http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.18.y.git;a=commit;h=dbee2bf2f312a9d18fa3f305adc14e2ee58f65df

linux-2.6-xen-sparse/drivers/char/mem.c +8 -4
@@ -618,7 +618,8 @@ static inline size_t read_zero_pagealign
 			count = size;
 
 		zap_page_range(vma, addr, count, NULL);
-        	zeromap_page_range(vma, addr, count, PAGE_COPY);
+        	if (zeromap_page_range(vma, addr, count, PAGE_COPY))
+			break;
 
 		size -= count;
 		buf += count;
@@ -685,11 +686,14 @@ out:
 
 static int mmap_zero(struct file * file, struct vm_area_struct * vma)
 {
+	int err;
+
 	if (vma->vm_flags & VM_SHARED)
 		return shmem_zero_setup(vma);
-	if (zeromap_page_range(vma, vma->vm_start, vma->vm_end - vma->vm_start, vma->vm_page_prot))
-		return -EAGAIN;
-	return 0;
+	err = zeromap_page_range(vma, vma->vm_start,
+			vma->vm_end - vma->vm_start, vma->vm_page_prot);
+	BUG_ON(err == -EEXIST);
+	return err;
 }
 #else /* CONFIG_MMU */
 static ssize_t read_zero(struct file * file, char * buf, 
linux-2.6-xen-sparse/mm/memory.c +29 -12

89 lines not on this page · raw message

Signature · 4 lines
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!