Re: [tip:x86/mm] kdump, proc/vmcore: Enable kdumping encrypted memory with SME enabled

From: lijiang
Date: Mon Oct 08 2018 - 22:55:12 EST


å 2018å10æ08æ 21:43, Borislav Petkov åé:
> On Mon, Oct 08, 2018 at 10:59:09AM +0200, Borislav Petkov wrote:
>> On Mon, Oct 08, 2018 at 04:47:34PM +0800, lijiang wrote:
>>> It looks like a good way to avoid the 'ifdefined', and it's also good enough for i386.
>>>
>>> But for other architectures, such as POWERPC/ARM..., we will also have to add the same
>>> function for every architecture. Otherwise, i guess that they also have a same compile
>>> error on other architectures.
>>
>> Yap, just realized that and looking at the rest of fs/proc/vmcore.c -
>> such functions are defined with the __weak attribute. Lemme see if that
>> works better.
>
> Seems so. I'll hammer on it more today:
>
Great! Thank you, Borislav.

Regards,
Lianbo
> ---
> fs/proc/vmcore.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
> index 42c32d06f7da..91ae16fbd7d5 100644
> --- a/fs/proc/vmcore.c
> +++ b/fs/proc/vmcore.c
> @@ -187,6 +187,16 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
> return remap_pfn_range(vma, from, pfn, size, prot);
> }
>
> +/*
> + * Architectures which support memory encryption override this.
> + */
> +ssize_t __weak
> +copy_oldmem_page_encrypted(unsigned long pfn, char *buf, size_t csize,
> + unsigned long offset, int userbuf)
> +{
> + return copy_oldmem_page(pfn, buf, csize, offset, userbuf);
> +}
> +
> /*
> * Copy to either kernel or user space
> */
>