Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has()

From
Tom Lendacky <thomas.lendacky@amd.com>
Date
2021-08-13 17:09:23
Also in
amd-gfx, dri-devel, kexec, kvm, linux-efi, linux-fsdevel, linux-iommu, linux-s390, lkml, platform-driver-x86
Reply to
Kirill A. Shutemov, 2021-08-12
On 8/12/21 5:07 AM, Kirill A. Shutemov wrote:
On Wed, Aug 11, 2021 at 10:52:55AM -0500, Tom Lendacky wrote:
quoted
On 8/11/21 7:19 AM, Kirill A. Shutemov wrote:
quoted
On Tue, Aug 10, 2021 at 02:48:54PM -0500, Tom Lendacky wrote:
quoted
On 8/10/21 1:45 PM, Kuppuswamy, Sathyanarayanan wrote:
...
quoted
quoted
Looking at code agains, now I *think* the reason is accessing a global
variable from __startup_64() inside TDX version of prot_guest_has().

__startup_64() is special. If you access any global variable you need to
use fixup_pointer(). See comment before __startup_64().

I'm not sure how you get away with accessing sme_me_mask directly from
there. Any clues? Maybe just a luck and complier generates code just right
for your case, I donno.
Hmm... yeah, could be that the compiler is using rip-relative addressing
for it because it lives in the .data section?
I guess. It has to be fixed. It may break with complier upgrade or any
random change around the code.
I'll look at doing that separate from this series.
BTW, does it work with clang for you?
I haven't tried with clang, I'll check on that.

Thanks,
Tom
Thread (43 messages) 43 messages, 9 authors, last reply 2021-08-13
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help