From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tej Subject: Re: Confusion about copy_to/from_guest Date: Tue, 27 Apr 2010 17:22:00 +0530 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On Mon, Apr 26, 2010 at 11:03 AM, Keir Fraser w= rote: > On 26/04/2010 03:32, "Tej" wrote: > >> Now passing the list_head from kernel using hypercall. Now how do I >> copy the element between kernel and hypervisor. >> >> 1. copy_from_guest(hyp_list_head, arg, 1) or >> copy_from_guest(hyp_list_head, arg, ) >> 2. copy_to_guest(arg, hyp_list_head, 1) or copy_to_guest(arg, >> hyp_list_head, ) > > The first of these. Copy_{to,from}_guest can copy arrays of structures, b= ut > since this is a linked structure you'd have to do the copy one element at= a > time. you mean to say, in hypervisor space copy first element using copy_from_guest(hyp_list_head, arg, 1), extract the next address from it and then copy again the next element using "copy_from_guest(hyp_list_head->next, arg->next, 1)" ??? > >> 2nd question: >> I did first one, but first element of list was not accessible in >> hypervisor space, why? > > Well, if you are really only copying the list_head, the above should work= . Yes, I have carried out the sample test, by allocating small struct linked list and then passing between hypervisor and kernel copy_from_guest(hyp_list_head, arg, 1) is working correctly. But my actial code is not working. Ok let me put some more effort, if not I will push the code for review. Thanks for your help > > =A0-- Keir > > >