Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933151AbbKMSKc (ORCPT ); Fri, 13 Nov 2015 13:10:32 -0500 Received: from smtp.citrix.com ([66.165.176.89]:40296 "EHLO SMTP.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932281AbbKMSKb (ORCPT ); Fri, 13 Nov 2015 13:10:31 -0500 X-IronPort-AV: E=Sophos;i="5.20,288,1444694400"; d="scan'208";a="312141914" Date: Fri, 13 Nov 2015 18:10:22 +0000 From: Stefano Stabellini X-X-Sender: sstabellini@kaball.uk.xensource.com To: Julien Grall CC: Stefano Stabellini , , , , Subject: Re: [Xen-devel] [PATCH v4 2/7] xen/arm: introduce HYPERVISOR_platform_op on arm and arm64 In-Reply-To: <5645E868.30706@citrix.com> Message-ID: References: <1447349448-22610-2-git-send-email-stefano.stabellini@eu.citrix.com> <5645E868.30706@citrix.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-DLP: MIA1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2426 Lines: 60 On Fri, 13 Nov 2015, Julien Grall wrote: > Hi Stefano, > > On 12/11/15 17:30, Stefano Stabellini wrote: > > Signed-off-by: Stefano Stabellini > > > > --- > > > > Changes in v2: > > - rename dom0_op to platform_op > > --- > > arch/arm/include/asm/xen/hypercall.h | 2 ++ > > arch/arm/xen/enlighten.c | 1 + > > arch/arm/xen/hypercall.S | 1 + > > arch/arm64/xen/hypercall.S | 1 + > > 4 files changed, 5 insertions(+) > > > > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h > > index 712b50e..c3e00d0 100644 > > --- a/arch/arm/include/asm/xen/hypercall.h > > +++ b/arch/arm/include/asm/xen/hypercall.h > > @@ -35,6 +35,7 @@ > > > > #include > > #include > > +#include > > > > long privcmd_call(unsigned call, unsigned long a1, > > unsigned long a2, unsigned long a3, > > @@ -49,6 +50,7 @@ int HYPERVISOR_memory_op(unsigned int cmd, void *arg); > > int HYPERVISOR_physdev_op(int cmd, void *arg); > > int HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args); > > int HYPERVISOR_tmem_op(void *arg); > > +int HYPERVISOR_platform_op(void *arg); > > int HYPERVISOR_platform_op(struct xen_platform_op *platform_op) to allow > compiler type checking and match the x86 version. Yeah, I am just following the same pattern as the others > Also, the implementation of the helper differ from x86. On x86, the > helper takes care of setting the interface_version while here you > request the caller to do it. > > It's better if we have similar requirement across the architecture as > this helpers may be called from common code. I agree with your point (I thought about it myself) but the current assembly scheme for hypercalls doesn't work well with that. I would have to introduce, and maintain going forward, two special hypercall implementations in assembly, one for arm and another for arm64, just to set interface_version. I don't think it is worth it; I prefer to have to maintain the explicit interface_version setting at the call sites (that today is just one). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/