On 2014/12/02 14:08, Julien Grall wrote: > Hi, > > On 02/12/14 13:03, Egger, Christoph wrote: >> On 2014/12/02 13:35, Julien Grall wrote: >>> Hi Christoph, >>> >>> On 02/12/14 10:06, Christoph Egger wrote: >>>> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c >>>> index 522c43d..37c13b1 100644 >>>> --- a/xen/arch/x86/mm.c >>>> +++ b/xen/arch/x86/mm.c >>>> @@ -4565,7 +4565,7 @@ int xenmem_add_to_physmap_one( >>>> mfn = virt_to_mfn(d->shared_info); >>>> break; >>>> case XENMAPSPACE_grant_table: >>>> - spin_lock(&d->grant_table->lock); >>>> + write_lock(&d->grant_table->lock); >>>> >>>> if ( d->grant_table->gt_version == 0 ) >>>> d->grant_table->gt_version = 1; >>>> @@ -4587,7 +4587,7 @@ int xenmem_add_to_physmap_one( >>>> mfn = virt_to_mfn(d->grant_table->shared_raw[idx]); >>>> } >>>> >>>> - spin_unlock(&d->grant_table->lock); >>>> + write_unlock(&d->grant_table->lock); >>>> break; >>>> case XENMAPSPACE_gmfn_range: >>>> case XENMAPSPACE_gmfn: >>> >>> You forgot to modify the ARM bits which is using the spinlock. See >>> arch/arm/mm.c >> >> I can do the change. But I don't have ARM hardware nor the build >> infrastructure. I need your help with compiling and testing on/for ARM. >> Alternatively you can send me a patch I can add to or squash into my >> patch series. > > I agree that testing the ARM part may require a bit of setup. But > you can easily build testing. only a cross-compiler for ARM is required > for this step. See: > > http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions#Building_Xen_on_ARM
Thank you for this pointer. I just compared xenmem_add_to_physmap_one() x86 and arm versions. The real architectural functions are virt_to_mfn(), mfn_to_page() and friends. Everything else in this function is just common code and can be moved into xen/common/ . Christoph _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel