I've rewritten the single copy pipe code again. Main changes: * doesn't use map_user_kiobuf anymore. That function locked the pages into memory. DoS attacks were possible. Now pages stay pageable. * simpler code, fewer loops. * support added for set_fs(KERNEL_DS)+pipe_write * all transfers that block now use single copy. This should reduce the number of context switches. The patch is not yet fully tested, but boots, compiles kernels and survives man . Should I merge pio_copy_to_user() with access_process_vm()? The main part of pio_copy_to_user() is access_process_vm(), but with copy_to_user() instead of memmove(). -- Manfred