Skip to contentSkip to conversation

New patches for 2.2.18pre24 raw IO (fix for bounce buffer copy)

PATCH Applied Stephen C. Tweedie 2 participants 3 messages Dec 4, 2000 – Dec 15, 2000

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

Hi,

I have pushed another set of raw IO patches out, this time to fix a bug with bounce buffer copying when running on highmem boxes. It is likely to affect any bounce buffer copies using non-page-aligned accesses if both highmem and normal pages are involved in the kiobuf.

The specific new patch added in this patchset is attached below. The full set has been uploaded as

	kiobuf-2.2.18pre24-B.tar.gz

at

ftp.*.kernel.org:/pub/linux/kernel/people/sct/raw-io/
and ftp.uk.linux.org:/pub/linux/sct/fs/raw-io/

This one really should kill all known bugs, dead. Please stress it out and let me know if anybody encounters any further problems. A merge of all of the pending raw IO fixes into 2.4 should be happening soon once the current VM changes for marking pages dirty are working.

Cheers,
Stephen

fs/iobuf.c renamed from fs/iobuf.c.~1~ +3 -3
@@ -211,10 +211,10 @@
 		unsigned long kin, kout;
 		int pagelen = length;
 		
+		if ((pagelen+offset) > PAGE_SIZE)
+			pagelen = PAGE_SIZE - offset;
+			
 		if (bounce_page) {
-			if ((pagelen+offset) > PAGE_SIZE)
-				pagelen = PAGE_SIZE - offset;
-		
 			if (direction == COPY_TO_BOUNCE) {
 				kin  = kmap(page, KM_READ);
 				kout = kmap(bounce_page, KM_WRITE);
#1 lore raw
Quoted 1 line · Stephen C. Tweedie

I have pushed another set of raw IO patches out, this time to fix a

This fix is missing:

mm/memory.c renamed from mm/memory.c.~1~ +2 -1
@@ -455,7 +455,7 @@
 	unsigned long		ptr, end;
 	int			err;
 	struct mm_struct *	mm;
-	struct vm_area_struct *	vma = 0;
+	struct vm_area_struct *	vma;
 	unsigned long		page;
 	struct page *		map;
 	int			doublepage = 0;
@@ -478,6 +478,7 @@
 		return err;
 
  repeat:
+	vma = NULL;
 	down(&mm->mmap_sem);
 
 	err = -EFAULT;

Andrea
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

author Applied
#2 lore raw
In reply to Stephen C. Tweedie

Hi,

mm/memory.c line 480

Quoted 13 lines · Andrea Arcangeli
Quoted 1 line · Stephen C. Tweedie

I have pushed another set of raw IO patches out, this time to fix a

This fix is missing:

mm/memory.c renamed from mm/memory.c.~1~ +2 -1
@@ -455,7 +455,7 @@
-	struct vm_area_struct *	vma = 0;
+	struct vm_area_struct *	vma;
@@ -478,6 +478,7 @@
  repeat:
+	vma = NULL;
 	down(&mm->mmap_sem);

Applied, I'm pushing out a 2.2.18 set of diffs now.

--Stephen

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/