Invariant system id registers are populated with host values
at initialization time using their .reset function cb.
These are currently called get_* which is usually used by
the functions implementing the .get_user callback.
Change their function names to reset_* to reflect what they
are used for.
Signed-off-by: Sebastian Ott <sebott@redhat.com>
---
arch/arm64/kvm/sys_regs.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 1b6ab483e21e..bae72a4ce72b 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -3795,8 +3795,8 @@ id_to_sys_reg_desc(struct kvm_vcpu *vcpu, u64 id,
*/
#define FUNCTION_INVARIANT(reg) \
- static u64 get_##reg(struct kvm_vcpu *v, \
- const struct sys_reg_desc *r) \
+ static u64 reset_##reg(struct kvm_vcpu *v, \
+ const struct sys_reg_desc *r) \
{ \
((struct sys_reg_desc *)r)->val = read_sysreg(reg); \
return ((struct sys_reg_desc *)r)->val; \
@@ -3808,9 +3808,9 @@ FUNCTION_INVARIANT(aidr_el1)
/* ->val is filled in by kvm_sys_reg_table_init() */
static struct sys_reg_desc invariant_sys_regs[] __ro_after_init = {
- { SYS_DESC(SYS_MIDR_EL1), NULL, get_midr_el1 },
- { SYS_DESC(SYS_REVIDR_EL1), NULL, get_revidr_el1 },
- { SYS_DESC(SYS_AIDR_EL1), NULL, get_aidr_el1 },
+ { SYS_DESC(SYS_MIDR_EL1), NULL, reset_midr_el1 },
+ { SYS_DESC(SYS_REVIDR_EL1), NULL, reset_revidr_el1 },
+ { SYS_DESC(SYS_AIDR_EL1), NULL, reset_aidr_el1 },
};
static int get_invariant_sys_reg(u64 id, u64 __user *uaddr)
--
2.42.0
Hi Sebastian,
On 5/14/24 09:22, Sebastian Ott wrote:
> Invariant system id registers are populated with host values
> at initialization time using their .reset function cb.
get_##reg call read_sysreg(). I don't really understand the above
sentence. Please could you elaborate?
Thanks
Eric
>
> These are currently called get_* which is usually used by
> the functions implementing the .get_user callback.
>
> Change their function names to reset_* to reflect what they
> are used for.
>
> Signed-off-by: Sebastian Ott <sebott@redhat.com>
> ---
> arch/arm64/kvm/sys_regs.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> index 1b6ab483e21e..bae72a4ce72b 100644
> --- a/arch/arm64/kvm/sys_regs.c
> +++ b/arch/arm64/kvm/sys_regs.c
> @@ -3795,8 +3795,8 @@ id_to_sys_reg_desc(struct kvm_vcpu *vcpu, u64 id,
> */
>
> #define FUNCTION_INVARIANT(reg) \
> - static u64 get_##reg(struct kvm_vcpu *v, \
> - const struct sys_reg_desc *r) \
> + static u64 reset_##reg(struct kvm_vcpu *v, \
> + const struct sys_reg_desc *r) \
> { \
> ((struct sys_reg_desc *)r)->val = read_sysreg(reg); \
> return ((struct sys_reg_desc *)r)->val; \
> @@ -3808,9 +3808,9 @@ FUNCTION_INVARIANT(aidr_el1)
>
> /* ->val is filled in by kvm_sys_reg_table_init() */
> static struct sys_reg_desc invariant_sys_regs[] __ro_after_init = {
> - { SYS_DESC(SYS_MIDR_EL1), NULL, get_midr_el1 },
> - { SYS_DESC(SYS_REVIDR_EL1), NULL, get_revidr_el1 },
> - { SYS_DESC(SYS_AIDR_EL1), NULL, get_aidr_el1 },
> + { SYS_DESC(SYS_MIDR_EL1), NULL, reset_midr_el1 },
> + { SYS_DESC(SYS_REVIDR_EL1), NULL, reset_revidr_el1 },
> + { SYS_DESC(SYS_AIDR_EL1), NULL, reset_aidr_el1 },
> };
>
> static int get_invariant_sys_reg(u64 id, u64 __user *uaddr)
Hej Eric, On Wed, 29 May 2024, Eric Auger wrote: > On 5/14/24 09:22, Sebastian Ott wrote: >> Invariant system id registers are populated with host values >> at initialization time using their .reset function cb. > get_##reg call read_sysreg(). I don't really understand the above > sentence. Please could you elaborate? > struct sys_reg_desc has 2 function pointers (among others): .reset and .get_user . The functions implementing these are usually named accordingly. For invariant registers only .reset is used but set to functions that are called get_* (which is usually used to implement .get_user). E.g.: invariant_sys_regs[0].reset == get_midr_el1 When trying to figure out this code I was confused by this, hence this patch.. Sebastian
Hi Sebastian, On 5/29/24 17:29, Sebastian Ott wrote: > Hej Eric, > > On Wed, 29 May 2024, Eric Auger wrote: >> On 5/14/24 09:22, Sebastian Ott wrote: >>> Invariant system id registers are populated with host values >>> at initialization time using their .reset function cb. >> get_##reg call read_sysreg(). I don't really understand the above >> sentence. Please could you elaborate? >> > > struct sys_reg_desc has 2 function pointers (among others): > .reset and .get_user . The functions implementing these are > usually named accordingly. For invariant registers only > .reset is used but set to functions that are called get_* > (which is usually used to implement .get_user). > > E.g.: invariant_sys_regs[0].reset == get_midr_el1 > > When trying to figure out this code I was confused by this, hence > this patch.. Ah OK, since ".reset=" was not used in the initilization I missed that. feel free to add my Reviewed-by: Eric Auger <eric.auger@redhat.com> Eric > > Sebastian >
© 2016 - 2026 Red Hat, Inc.