--- sp3/mm/memory.c.~1~ 2003-10-12 15:24:18.000000000 +0200 +++ sp3/mm/memory.c 2003-10-23 10:17:57.000000000 +0200 @@ -631,11 +631,11 @@ int map_user_kiobuf(int rw, struct kiobu return err; } iobuf->nr_pages = err; - while (pgcount--) { + while (err--) { /* FIXME: flush superflous for rw==READ, * probably wrong function for rw==WRITE */ - flush_dcache_page(iobuf->maplist[pgcount]); + flush_dcache_page(iobuf->maplist[err]); } dprintk ("map_user_kiobuf: end OK\n"); return 0;