Messages in this thread | | | Subject | Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() | From | Tom Lendacky <> | Date | Fri, 13 Aug 2021 12:08:59 -0500 |
| |
On 8/12/21 5:07 AM, Kirill A. Shutemov wrote: > On Wed, Aug 11, 2021 at 10:52:55AM -0500, Tom Lendacky wrote: >> On 8/11/21 7:19 AM, Kirill A. Shutemov wrote: >>> On Tue, Aug 10, 2021 at 02:48:54PM -0500, Tom Lendacky wrote: >>>> On 8/10/21 1:45 PM, Kuppuswamy, Sathyanarayanan wrote: ... >>> 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
>
| |