 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] vmx-copy_from_guest.patch
 
# seems current vmx_copy can not deal with copy over page boundary?
# so remove inst_copy_from_guest will cause problem.
Are you looking at the correct tree? Both xen-vt-testing and xen-unstable
have my newer vmx_copy that was introduced last Friday. It does handle
multiple pages.
int
vmx_copy(void *buf, unsigned long laddr, int size, int dir)
{
    unsigned long gpa, mfn;
    char *addr;
    int count;
    while (size > 0) {
        count = PAGE_SIZE - (laddr & ~PAGE_MASK);
        if (count > size)
            count = size;
        if (vmx_paging_enabled(current)) {
                gpa = gva_to_gpa(laddr);
                mfn = get_mfn_from_pfn(gpa >> PAGE_SHIFT);
        } else
                mfn = get_mfn_from_pfn(laddr >> PAGE_SHIFT);
        if (mfn == INVALID_MFN)
                return 0;
        addr = (char *)map_domain_page(mfn) + (laddr & ~PAGE_MASK);
        if (dir == VMX_COPY_IN)
            memcpy(buf, addr, count);
        else
            memcpy(addr, buf, count);
        unmap_domain_page(addr);
        laddr += count;
        buf += count;
        size -= count;
    }
    return 1;
}
        - Leendert
--
Leendert van Doorn                                    <leendert@xxxxxxxxxxxxxx>
IBM T.J. Watson Research Center                       (914) 784-7831
30 Saw Mill River Road, Hawthorne, NY 10532
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |