lkml.org 
[lkml]   [2019]   [Dec]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 2/6] KVM: arm64: Add SMCCC paravirtualised lock calls
    Date
    Add two new SMCCC compatible hypercalls for PV lock features:
    PV_LOCK_FEATURES: 0xC6000020
    PV_LOCK_PREEMPTED: 0xC6000021

    Also add the header file which defines the ABI for the paravirtualized
    lock features we're about to add.

    Signed-off-by: Zengruan Ye <yezengruan@huawei.com>
    ---
    arch/arm64/include/asm/pvlock-abi.h | 16 ++++++++++++++++
    include/linux/arm-smccc.h | 14 ++++++++++++++
    2 files changed, 30 insertions(+)
    create mode 100644 arch/arm64/include/asm/pvlock-abi.h

    diff --git a/arch/arm64/include/asm/pvlock-abi.h b/arch/arm64/include/asm/pvlock-abi.h
    new file mode 100644
    index 000000000000..06e0c3d7710a
    --- /dev/null
    +++ b/arch/arm64/include/asm/pvlock-abi.h
    @@ -0,0 +1,16 @@
    +/* SPDX-License-Identifier: GPL-2.0 */
    +/*
    + * Copyright(c) 2019 Huawei Technologies Co., Ltd
    + * Author: Zengruan Ye <yezengruan@huawei.com>
    + */
    +
    +#ifndef __ASM_PVLOCK_ABI_H
    +#define __ASM_PVLOCK_ABI_H
    +
    +struct pvlock_vcpu_state {
    + __le64 preempted;
    + /* Structure must be 64 byte aligned, pad to that size */
    + u8 padding[56];
    +} __packed;
    +
    +#endif
    diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
    index 59494df0f55b..3a5c6b35492f 100644
    --- a/include/linux/arm-smccc.h
    +++ b/include/linux/arm-smccc.h
    @@ -46,6 +46,7 @@
    #define ARM_SMCCC_OWNER_OEM 3
    #define ARM_SMCCC_OWNER_STANDARD 4
    #define ARM_SMCCC_OWNER_STANDARD_HYP 5
    +#define ARM_SMCCC_OWNER_VENDOR_HYP 6
    #define ARM_SMCCC_OWNER_TRUSTED_APP 48
    #define ARM_SMCCC_OWNER_TRUSTED_APP_END 49
    #define ARM_SMCCC_OWNER_TRUSTED_OS 50
    @@ -377,5 +378,18 @@ asmlinkage void __arm_smccc_hvc(unsigned long a0, unsigned long a1,
    ARM_SMCCC_OWNER_STANDARD_HYP, \
    0x21)

    +/* Paravirtualised lock calls */
    +#define ARM_SMCCC_HV_PV_LOCK_FEATURES \
    + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
    + ARM_SMCCC_SMC_64, \
    + ARM_SMCCC_OWNER_VENDOR_HYP, \
    + 0x20)
    +
    +#define ARM_SMCCC_HV_PV_LOCK_PREEMPTED \
    + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
    + ARM_SMCCC_SMC_64, \
    + ARM_SMCCC_OWNER_VENDOR_HYP, \
    + 0x21)
    +
    #endif /*__ASSEMBLY__*/
    #endif /*__LINUX_ARM_SMCCC_H*/
    --
    2.19.1

    \
     
     \ /
      Last update: 2019-12-26 15:00    [W:2.711 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site