-
-
Notifications
You must be signed in to change notification settings - Fork 262
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a3045e0
commit e6aa2b8
Showing
2 changed files
with
26 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,3 +66,4 @@ David Meier <[email protected]> (Kenny.ch) | |
Daniel Cordero <[email protected]> (0xdc) | ||
esi <[email protected]> (esibun) | ||
MakiseKurisu <[email protected]> (MakiseKurisu) | ||
Zenithal <[email protected]> (ZenithalHourlyRate) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
/** | ||
* Looking Glass | ||
* Copyright © 2017-2022 The Looking Glass Authors | ||
* Copyright © 2017-2023 The Looking Glass Authors | ||
* https://looking-glass.io | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
|
@@ -33,6 +33,10 @@ | |
|
||
#include <asm/io.h> | ||
|
||
#ifdef CONFIG_AMD_MEM_ENCRYPT | ||
#include <asm/mem_encrypt.h> | ||
#endif | ||
|
||
#include "kvmfr.h" | ||
|
||
DEFINE_MUTEX(minor_lock); | ||
|
@@ -321,6 +325,25 @@ static int device_mmap(struct file * filp, struct vm_area_struct * vma) | |
switch (kdev->type) | ||
{ | ||
case KVMFR_TYPE_PCI: | ||
#ifdef CONFIG_AMD_MEM_ENCRYPT | ||
/* Clear C-bit for ivshmem when mapped | ||
* as normal memory to the userspace | ||
* | ||
* devm_memremap below will "hotplug" the ivshmem as normal mem, | ||
* when sev and/or sev-snp is effective, | ||
* ivshmem will be encrypted and private memory. | ||
* | ||
* However, this is not the intention of ivshmem, as it | ||
* is meant to be shared with other VMs and the hypervisor. | ||
* | ||
* Mapping ivshmem as iomem could resolve the sev/sev-snp issue, | ||
* but it then will not be cached and the performance is low. | ||
* | ||
* To maintain high performance yet make it shared, we should | ||
* clear the C-bit for ivshmem. | ||
*/ | ||
vma->vm_page_prot.pgprot &= ~(sme_me_mask); | ||
#endif | ||
vma->vm_ops = &pci_mmap_ops; | ||
vma->vm_private_data = kdev; | ||
return 0; | ||
|
@@ -626,7 +649,7 @@ MODULE_DEVICE_TABLE(pci, kvmfr_pci_ids); | |
MODULE_LICENSE("GPL v2"); | ||
MODULE_AUTHOR("Geoffrey McRae <[email protected]>"); | ||
MODULE_AUTHOR("Guanzhong Chen <[email protected]>"); | ||
MODULE_VERSION("0.0.8"); | ||
MODULE_VERSION("0.0.9"); | ||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,16,0) | ||
MODULE_IMPORT_NS(DMA_BUF); | ||
#endif |