copy_from_user again()

From: Andi Kleen
Date: Tue Jun 17 2008 - 18:20:22 EST



Linus,

Just in case you read that:

I thought a little more about your patch. One problem I see (and that is why
I aborted my version of it too) is that it becomes very inaccurate now in reporting.

So for example when you have a source like

offset

0
4
8
<---> unmapped boundary

and it starts copying from 0-8 and faults then with your patch it will
return full size even though it could have copied 8 bytes (return size
- 8) That is what I meant by breaking it. Arguably it's just a
different breakage.

IIRC mount was quite sensitive to that, as in it passed some data before
the a fault boundary and relies on that data getting through. It might
be lucky with the alignment or it might now.

So with your change the exception handler would also need to be fixed
to copy the non faulted part to the target.

-Andi

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