RE: [PATCH Part2 v6 03/49] x86/sev: Add the host SEV-SNP initialization support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Public]

Hello Peter,

>> +static __init int __snp_rmptable_init(void) {
>> +       u64 rmp_base, sz;
>> +       void *start;
>> +       u64 val;
>> +
>> +       if (!get_rmptable_info(&rmp_base, &sz))
>> +               return 1;
>> +
>> +       start = memremap(rmp_base, sz, MEMREMAP_WB);
>> +       if (!start) {
>> +               pr_err("Failed to map RMP table 0x%llx+0x%llx\n", rmp_base, sz);
>> +               return 1;
>> +       }
>> +
>> +       /*
>> +        * Check if SEV-SNP is already enabled, this can happen if we are coming from
>> +        * kexec boot.
>> +        */
>> +       rdmsrl(MSR_AMD64_SYSCFG, val);
>> +       if (val & MSR_AMD64_SYSCFG_SNP_EN)
>> +               goto skip_enable;
>> +
>> +       /* Initialize the RMP table to zero */
>> +       memset(start, 0, sz);
>> +
>> +       /* Flush the caches to ensure that data is written before SNP is enabled. */
>> +       wbinvd_on_all_cpus();
>> +
>> +       /* Enable SNP on all CPUs. */
>> +       on_each_cpu(snp_enable, NULL, 1);
>> +
>> +skip_enable:
>> +       rmptable_start = (unsigned long)start;
>> +       rmptable_end = rmptable_start + sz;

> Since in get_rmptable_info() `rmp_sz = rmp_end - rmp_base + 1;` should this be `rmptable_end = rmptable_start + sz - 1;`?

Yes, it should be.

Thanks,
Ashish




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux