@@ -87,6 +87,21 @@ static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu)
87
87
case HAFGRTR_EL2: \
88
88
m = &hafgrtr_masks; \
89
89
break; \
90
+ case HFGRTR2_EL2: \
91
+ m = &hfgrtr2_masks; \
92
+ break; \
93
+ case HFGWTR2_EL2: \
94
+ m = &hfgwtr2_masks; \
95
+ break; \
96
+ case HFGITR2_EL2: \
97
+ m = &hfgitr2_masks; \
98
+ break; \
99
+ case HDFGRTR2_EL2: \
100
+ m = &hdfgrtr2_masks; \
101
+ break; \
102
+ case HDFGWTR2_EL2: \
103
+ m = &hdfgwtr2_masks; \
104
+ break; \
90
105
default: \
91
106
BUILD_BUG_ON(1); \
92
107
} \
@@ -120,6 +135,17 @@ static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu)
120
135
case HAFGRTR_EL2: \
121
136
id = HAFGRTR_GROUP; \
122
137
break; \
138
+ case HFGRTR2_EL2: \
139
+ case HFGWTR2_EL2: \
140
+ id = HFGRTR2_GROUP; \
141
+ break; \
142
+ case HFGITR2_EL2: \
143
+ id = HFGITR2_GROUP; \
144
+ break; \
145
+ case HDFGRTR2_EL2: \
146
+ case HDFGWTR2_EL2: \
147
+ id = HDFGRTR2_GROUP; \
148
+ break; \
123
149
default: \
124
150
BUILD_BUG_ON(1); \
125
151
} \
@@ -182,6 +208,15 @@ static inline void __activate_traps_hfgxtr(struct kvm_vcpu *vcpu)
182
208
183
209
if (cpu_has_amu ())
184
210
update_fgt_traps (hctxt , vcpu , kvm , HAFGRTR_EL2 );
211
+
212
+ if (!cpus_have_final_cap (ARM64_HAS_FGT2 ))
213
+ return ;
214
+
215
+ update_fgt_traps (hctxt , vcpu , kvm , HFGRTR2_EL2 );
216
+ update_fgt_traps (hctxt , vcpu , kvm , HFGWTR2_EL2 );
217
+ update_fgt_traps (hctxt , vcpu , kvm , HFGITR2_EL2 );
218
+ update_fgt_traps (hctxt , vcpu , kvm , HDFGRTR2_EL2 );
219
+ update_fgt_traps (hctxt , vcpu , kvm , HDFGWTR2_EL2 );
185
220
}
186
221
187
222
#define __deactivate_fgt (htcxt , vcpu , reg ) \
@@ -205,6 +240,15 @@ static inline void __deactivate_traps_hfgxtr(struct kvm_vcpu *vcpu)
205
240
206
241
if (cpu_has_amu ())
207
242
__deactivate_fgt (hctxt , vcpu , HAFGRTR_EL2 );
243
+
244
+ if (!cpus_have_final_cap (ARM64_HAS_FGT2 ))
245
+ return ;
246
+
247
+ __deactivate_fgt (hctxt , vcpu , HFGRTR2_EL2 );
248
+ __deactivate_fgt (hctxt , vcpu , HFGWTR2_EL2 );
249
+ __deactivate_fgt (hctxt , vcpu , HFGITR2_EL2 );
250
+ __deactivate_fgt (hctxt , vcpu , HDFGRTR2_EL2 );
251
+ __deactivate_fgt (hctxt , vcpu , HDFGWTR2_EL2 );
208
252
}
209
253
210
254
static inline void __activate_traps_mpam (struct kvm_vcpu * vcpu )
0 commit comments