Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-11 Thread Stuart Anderson
On Tue, 10 Jul 2007, Fabrice Bellard wrote: I confirm that I expected g2h() to be completely removed in case the Linux user access API is used. I agree too that it should not be used. I'm testing ARM on x86_64, and used it in a few places to clean up some warnings. The real fix is to change

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-10 Thread Paul Brook
On Tuesday 10 July 2007, Stuart Anderson wrote: On Mon, 9 Jul 2007, Fabrice Bellard wrote: No. Ideally you should use the same conventions as the Linux kernel and assume that you cannot access the user data directly. That's what I had already started doing today. For the time being, I

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-10 Thread Fabrice Bellard
Paul Brook wrote: (...] Using g2h directly is bad. g2h is an implementation detail of one particular memory model. The whole point of the lock_user abstraction (or a similar copy_from_user abstraction) is that almost none of the code cares how user memory is accessed. One of the long-term

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-09 Thread Stuart Anderson
On Fri, 6 Jul 2007, Stuart Anderson wrote: So, the question is: Can I simplify this code to assume that guest and host addresses coexist and use the copy_*_user() or just the access_ok() interfaces? Attached is a diff that shows what this will look like for the struct

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-09 Thread Stuart Anderson
On Mon, 9 Jul 2007, Stuart Anderson wrote: Attached is a diff ... Here's the diff. Stuart Stuart R. Anderson [EMAIL PROTECTED] Network Software Engineering http://www.netsweng.com/ 1024D/37A79149:

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-09 Thread Fabrice Bellard
Stuart Anderson wrote: On Fri, 6 Jul 2007, Stuart Anderson wrote: So, the question is: Can I simplify this code to assume that guest and host addresses coexist and use the copy_*_user() or just the access_ok() interfaces? No. Ideally you should use the same conventions as the

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-06 Thread Fabrice Bellard
Please update page_check_range() (and other related functions) to return -EFAULT instead of EFAULT in case of error. Moreover, I believe using similar functions as Linux for memory access (copyfromuser, copytouser, get_user, put_user) would be cleaner. Regards, Fabrice. Stuart Anderson

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-06 Thread Stuart Anderson
On Fri, 6 Jul 2007, Fabrice Bellard wrote: Please update page_check_range() (and other related functions) to return -EFAULT instead of EFAULT in case of error. Will do. Moreover, I believe using similar functions as Linux for memory access (copyfromuser, copytouser, get_user, put_user)

Re: [Qemu-devel] [PATCH] linux-user EFAULT implementation

2007-07-06 Thread Stuart Anderson
On Fri, 6 Jul 2007, Stuart Anderson wrote: Moreover, I believe using similar functions as Linux for memory access (copyfromuser, copytouser, get_user, put_user) would be cleaner. This makes sense. That code that I sent was based on the idea that I was just extending the model that was already