Re: Copy_to_user and copy_from_user

From: Ramesh Sudini
Date: Mon Aug 09 2004 - 08:27:53 EST



Then, how do I make sure that all the data I wanted to be copied is infact copied?? What are the scenarios where copy_to/from_user could fail and how can I avoid it.

Thanks
-Ramesh



No you cannot call it until all data has been copied. copy_{to,from}_user fails when a fault happens during the copy process. So you simply cannot try again... It will fault again.
Well, not 100% true. An other running thread (same mm with the process which copies data) can "fix" the faulty adress space. Bad thread....

Ramesh Sudini wrote:
Hi,

If copy_from_user returns non zero value, then I do not see any driver(for example PPP) try to copy the remaining data. It treats it as an error scenario.

Why is this? Shouldnt it have a while loop and attempt to copy_from_user till all the data is copied??

I am writing a driver and trying to understand what needs to be done in case it returns a non-zero value? I have huge amount of data to be copied from user space Ex: 3000byte messages.

Can somebody suggest me what is the best I could do...(Please cc me personally with your response)

Thanks
Ramesh


_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

-
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/