[prev in list] [next in list] [prev in thread] [next in thread]
List: xen-devel
Subject: Re: [Xen-devel] [PATCH v2 4/4] vsmc: psci: remove 64 bit mode check
From: Stefano Stabellini <sstabellini () kernel ! org>
Date: 2017-06-30 21:19:27
Message-ID: alpine.DEB.2.10.1706301414450.2919 () sstabellini-ThinkPad-X260
[Download RAW message or body]
On Thu, 22 Jun 2017, Volodymyr Babchuk wrote:
> PSCI handling code had helper routine that checked calling convention.
> It does not needed anymore, because:
>
> - Generic handler checks that 64 bit calls can be made only by
> 64 bit guests.
>
> - SMCCC requires that 64-bit handler should support both 32 and 64 bit
> calls even if they originate from 64 bit caller.
>
> This patch removes that extra check.
>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> ---
> xen/arch/arm/vsmc.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
>
> diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
> index 5f10fd1..1983e0e 100644
> --- a/xen/arch/arm/vsmc.c
> +++ b/xen/arch/arm/vsmc.c
> @@ -98,12 +98,6 @@ static bool handle_arch(struct cpu_user_regs *regs)
> return false;
> }
>
> -/* helper function for checking arm mode 32/64 bit */
> -static inline int psci_mode_check(struct domain *d, register_t fid)
> -{
> - return !( is_64bit_domain(d)^( (fid & PSCI_0_2_64BIT) >> 30 ) );
> -}
> -
> /* PSCI 2.0 interface */
> static bool handle_ssc(struct cpu_user_regs *regs)
> {
> @@ -125,8 +119,7 @@ static bool handle_ssc(struct cpu_user_regs *regs)
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_MIGRATE_INFO_UP_CPU):
> perfc_incr(vpsci_migrate_info_up_cpu);
> - if ( psci_mode_check(current->domain, fid) )
> - set_user_reg(regs, 0, do_psci_0_2_migrate_info_up_cpu());
> + set_user_reg(regs, 0, do_psci_0_2_migrate_info_up_cpu());
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_SYSTEM_OFF):
> perfc_incr(vpsci_system_off);
> @@ -140,7 +133,6 @@ static bool handle_ssc(struct cpu_user_regs *regs)
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_CPU_ON):
> perfc_incr(vpsci_cpu_on);
> - if ( psci_mode_check(current->domain, fid) )
I would prefer if the `return true' was within the { } block. But anyway
it's just a code style issue, so:
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> {
> register_t vcpuid = get_user_reg(regs, 1);
> register_t epoint = get_user_reg(regs, 2);
> @@ -151,7 +143,6 @@ static bool handle_ssc(struct cpu_user_regs *regs)
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_CPU_SUSPEND):
> perfc_incr(vpsci_cpu_suspend);
> - if ( psci_mode_check(current->domain, fid) )
> {
> uint32_t pstate = get_user_reg(regs, 1);
> register_t epoint = get_user_reg(regs, 2);
> @@ -162,7 +153,6 @@ static bool handle_ssc(struct cpu_user_regs *regs)
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_AFFINITY_INFO):
> perfc_incr(vpsci_cpu_affinity_info);
> - if ( psci_mode_check(current->domain, fid) )
> {
> register_t taff = get_user_reg(regs, 1);
> uint32_t laff = get_user_reg(regs,2);
> @@ -172,7 +162,6 @@ static bool handle_ssc(struct cpu_user_regs *regs)
> return true;
> case ARM_SMCCC_FUNC_NUM(PSCI_0_2_FN_MIGRATE):
> perfc_incr(vpsci_cpu_migrate);
> - if ( psci_mode_check(current->domain, fid) )
> {
> uint32_t tcpu = get_user_reg(regs, 1);
> set_user_reg(regs, 0, do_psci_0_2_migrate(tcpu));
> --
> 2.7.4
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic