* Thomas Gleixner <[EMAIL PROTECTED]> wrote:

> The __copy_to_user_inatomic() calls in file_read_actor() and 
> pipe_read() are broken on original i386 machines, where WP-works-ok == 
> false, as __copy_to_user_inatomic() on such systems calls functions 
> which might sleep and/or contain cond_resched() calls inside of a 
> kmap_atomic() region.
> 
> The original check for WP-works-ok was in access_ok(), but got moved 
> during the 2.5 series to fix a race vs. swap.
> 
> Return the number of bytes to copy in the case where we are in an 
> atomic region, so the non atomic code pathes in file_read_actor() and 
> pipe_read() are taken.

neat trick! (v2.6.21 must-have me thinks.)

> This could be optimized to avoid the kmap_atomicby moving the check 
                                                  ^---- add space
> for WP-works-ok into fault_in_pages_writeable(), but this is more 
> intrusive and can be done later.
> 
> Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>

Acked-by: Ingo Molnar <[EMAIL PROTECTED]>

        Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to