File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change 451
451
#define X86_FEATURE_V_TSC_AUX (19*32+ 9) /* Virtual TSC_AUX */
452
452
#define X86_FEATURE_SME_COHERENT (19*32+10) /* AMD hardware-enforced cache coherency */
453
453
#define X86_FEATURE_DEBUG_SWAP (19*32+14) /* "debug_swap" AMD SEV-ES full debug state swap support */
454
+ #define X86_FEATURE_RMPREAD (19*32+21) /* RMPREAD instruction */
454
455
#define X86_FEATURE_SVSM (19*32+28) /* "svsm" SVSM present */
455
456
456
457
/* AMD-defined Extended Feature 2 EAX, CPUID level 0x80000021 (EAX), word 20 */
Original file line number Diff line number Diff line change @@ -306,6 +306,18 @@ static int get_rmpentry(u64 pfn, struct rmpentry *e)
306
306
{
307
307
struct rmpentry_raw * e_raw ;
308
308
309
+ if (cpu_feature_enabled (X86_FEATURE_RMPREAD )) {
310
+ int ret ;
311
+
312
+ /* Binutils version 2.44 supports the RMPREAD mnemonic. */
313
+ asm volatile (".byte 0xf2, 0x0f, 0x01, 0xfd"
314
+ : "=a" (ret )
315
+ : "a" (pfn << PAGE_SHIFT ), "c" (e )
316
+ : "memory" , "cc" );
317
+
318
+ return ret ;
319
+ }
320
+
309
321
e_raw = get_raw_rmpentry (pfn );
310
322
if (IS_ERR (e_raw ))
311
323
return PTR_ERR (e_raw );
You can’t perform that action at this time.
0 commit comments