public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] loop.c forgot a kmap
@ 2002-05-24  3:20 Benjamin LaHaise
  2002-05-24  3:24 ` William Lee Irwin III
  2002-05-24  4:18 ` Andrew Morton
  0 siblings, 2 replies; 3+ messages in thread
From: Benjamin LaHaise @ 2002-05-24  3:20 UTC (permalink / raw)
  To: linux-fsdevel, Linux Kernel

The patch below fixes a bug in loop.c that causes highmem systems 
to fail spectacularly when a page happens to be allocated in highmem 
by replacing the use of page_address with a kmap/kunmap sequence.  

		-ben
-- 
"You will be reincarnated as a toad; and you will be much happier."

:r ~/patches/v2.4.19-pre8-loop-kmap.diff
--- /md0/kernels/2.4/v2.4.19-pre8/drivers/block/loop.c	Wed May  8 13:19:02 2002
+++ v2.4.19-pre8/drivers/block/loop.c	Thu May 23 22:44:09 2002
@@ -199,9 +199,9 @@
 		page = grab_cache_page(mapping, index);
 		if (!page)
 			goto fail;
+		kaddr = kmap(page);
 		if (aops->prepare_write(file, page, offset, offset+size))
 			goto unlock;
-		kaddr = page_address(page);
 		flush_dcache_page(page);
 		transfer_result = lo_do_transfer(lo, WRITE, kaddr + offset, data, size, IV);
 		if (transfer_result) {
@@ -216,6 +216,7 @@
 			goto unlock;
 		if (transfer_result)
 			goto unlock;
+		kunmap(page);
 		data += size;
 		len -= size;
 		offset = 0;
@@ -228,6 +229,7 @@
 	return 0;
 
 unlock:
+	kunmap(page);
 	UnlockPage(page);
 	page_cache_release(page);
 fail:

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-05-24  4:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-24  3:20 [PATCH] loop.c forgot a kmap Benjamin LaHaise
2002-05-24  3:24 ` William Lee Irwin III
2002-05-24  4:18 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox