Messages in this thread | | | Subject | copy_from_user again() | From | Andi Kleen <> | Date | Wed, 18 Jun 2008 00:19:03 +0200 |
| |
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
| |