@@ -48,6 +48,7 @@ bool filter_reg(__u64 reg)
4848 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOM :
4949 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOZ :
5050 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR :
51+ case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICOND :
5152 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICSR :
5253 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZIFENCEI :
5354 case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZIHINTPAUSE :
@@ -361,6 +362,7 @@ static const char *isa_ext_id_to_str(__u64 id)
361362 KVM_ISA_EXT_ARR (ZICBOM ),
362363 KVM_ISA_EXT_ARR (ZICBOZ ),
363364 KVM_ISA_EXT_ARR (ZICNTR ),
365+ KVM_ISA_EXT_ARR (ZICOND ),
364366 KVM_ISA_EXT_ARR (ZICSR ),
365367 KVM_ISA_EXT_ARR (ZIFENCEI ),
366368 KVM_ISA_EXT_ARR (ZIHINTPAUSE ),
@@ -632,6 +634,10 @@ static __u64 zicntr_regs[] = {
632634 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR ,
633635};
634636
637+ static __u64 zicond_regs [] = {
638+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICOND ,
639+ };
640+
635641static __u64 zicsr_regs [] = {
636642 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICSR ,
637643};
@@ -759,6 +765,8 @@ static __u64 fp_d_regs[] = {
759765 {"zbs", .feature = KVM_RISCV_ISA_EXT_ZBS, .regs = zbs_regs, .regs_n = ARRAY_SIZE(zbs_regs),}
760766#define ZICNTR_REGS_SUBLIST \
761767 {"zicntr", .feature = KVM_RISCV_ISA_EXT_ZICNTR, .regs = zicntr_regs, .regs_n = ARRAY_SIZE(zicntr_regs),}
768+ #define ZICOND_REGS_SUBLIST \
769+ {"zicond", .feature = KVM_RISCV_ISA_EXT_ZICOND, .regs = zicond_regs, .regs_n = ARRAY_SIZE(zicond_regs),}
762770#define ZICSR_REGS_SUBLIST \
763771 {"zicsr", .feature = KVM_RISCV_ISA_EXT_ZICSR, .regs = zicsr_regs, .regs_n = ARRAY_SIZE(zicsr_regs),}
764772#define ZIFENCEI_REGS_SUBLIST \
@@ -864,6 +872,14 @@ static struct vcpu_reg_list zicntr_config = {
864872 },
865873};
866874
875+ static struct vcpu_reg_list zicond_config = {
876+ .sublists = {
877+ BASE_SUBLIST ,
878+ ZICOND_REGS_SUBLIST ,
879+ {0 },
880+ },
881+ };
882+
867883static struct vcpu_reg_list zicsr_config = {
868884 .sublists = {
869885 BASE_SUBLIST ,
@@ -932,6 +948,7 @@ struct vcpu_reg_list *vcpu_configs[] = {
932948 & zbb_config ,
933949 & zbs_config ,
934950 & zicntr_config ,
951+ & zicond_config ,
935952 & zicsr_config ,
936953 & zifencei_config ,
937954 & zihpm_config ,
0 commit comments