[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4ae1cfb5-0a4b-2aac-2575-024e2c74826f@redhat.com>
Date: Tue, 3 Jul 2018 10:17:19 +0800
From: lijiang <lijiang@...hat.com>
To: Borislav Petkov <bp@...en8.de>
Cc: linux-kernel@...r.kernel.org, mingo@...hat.com, tglx@...utronix.de,
hpa@...or.com, ebiederm@...ssion.com, joro@...tes.org,
thomas.lendacky@....com, dyoung@...hat.com,
kexec@...ts.infradead.org, iommu@...ts.linux-foundation.org,
bhe@...hat.com
Subject: Re: [PATCH 1/5 V5] Add a function(ioremap_encrypted) for kdump when
AMD sme enabled
在 2018年07月02日 18:14, Borislav Petkov 写道:
> On Mon, Jul 02, 2018 at 03:26:35PM +0800, Lianbo Jiang wrote:
>> @@ -131,7 +132,8 @@ static void __ioremap_check_mem(resource_size_t addr, unsigned long size,
>> * caller shouldn't need to know that small detail.
>> */
>> static void __iomem *__ioremap_caller(resource_size_t phys_addr,
>> - unsigned long size, enum page_cache_mode pcm, void *caller)
>> + unsigned long size, enum page_cache_mode pcm,
>> + void *caller, bool encrypted)
>
> So instead of sprinkling that @encrypted argument everywhere and then
> setting it based on sme_active() ...
>
>> {
>> unsigned long offset, vaddr;
>> resource_size_t last_addr;
>> @@ -199,7 +201,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
>> * resulting mapping.
>> */
>> prot = PAGE_KERNEL_IO;
>> - if (sev_active() && mem_flags.desc_other)
>> + if ((sev_active() && mem_flags.desc_other) || encrypted)
>
> ... why can't you simply do your checks:
>
> sme_active() && is_kdump_kernel()
>
> here so that __ioremap_caller() can automatically choose the proper
> pgprot value when ioremapping the memory in the kdump kernel?
>
> And this way the callers don't even have to care whether the memory is
> encrypted or not?
>
Thank you, Boris. I'm very glad to read your comments. That's a good idea, but it has some
unencrypted memory in kdump mode, for example, the elfcorehdr. In fact, the elfcorehdr and
notes call the same function(read_from_oldmem->ioremap_cache), in this case, it is very
difficult to properly remap the memory if the caller don't care whether the memory is encrypted.
Regards,
Lianbo
>> prot = pgprot_encrypted(prot);
>>
>> switch (pcm) {
>
Powered by blists - more mailing lists