Re: [PATCH 4/4 v8] kdump/vmcore: support encrypted old memory with SME enabled

From: lijiang
Date: Sat Sep 29 2018 - 22:49:04 EST


å 2018å09æ30æ 02:25, kbuild test robot åé:
> Hi Lianbo,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on sof-driver-fuweitax/master]
> [also build test ERROR on v4.19-rc5 next-20180928]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Lianbo-Jiang/Support-kdump-for-AMD-secure-memory-encryption-SME/20180930-001539
> base: https://github.com/fuweitax/linux master
> config: i386-randconfig-x0-09300051 (attached as .config)
> compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=i386
>
> All errors (new ones prefixed by >>):
>
> fs/proc/vmcore.o: In function `read_from_oldmem':
>>> fs/proc/vmcore.c:115: undefined reference to `copy_oldmem_page_encrypted'
>
Ok, i will fix this compile error, and post again later.

Thanks.
> vim +115 fs/proc/vmcore.c
>
> 88
> 89 /* Reads a page from the oldmem device from given offset. */
> 90 static ssize_t read_from_oldmem(char *buf, size_t count,
> 91 u64 *ppos, int userbuf,
> 92 bool encrypted)
> 93 {
> 94 unsigned long pfn, offset;
> 95 size_t nr_bytes;
> 96 ssize_t read = 0, tmp;
> 97
> 98 if (!count)
> 99 return 0;
> 100
> 101 offset = (unsigned long)(*ppos % PAGE_SIZE);
> 102 pfn = (unsigned long)(*ppos / PAGE_SIZE);
> 103
> 104 do {
> 105 if (count > (PAGE_SIZE - offset))
> 106 nr_bytes = PAGE_SIZE - offset;
> 107 else
> 108 nr_bytes = count;
> 109
> 110 /* If pfn is not ram, return zeros for sparse dump files */
> 111 if (pfn_is_ram(pfn) == 0)
> 112 memset(buf, 0, nr_bytes);
> 113 else {
> 114 if (encrypted)
> > 115 tmp = copy_oldmem_page_encrypted(pfn, buf,
> 116 nr_bytes,
> 117 offset,
> 118 userbuf);
> 119 else
> 120 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
> 121 offset, userbuf);
> 122
> 123 if (tmp < 0)
> 124 return tmp;
> 125 }
> 126 *ppos += nr_bytes;
> 127 count -= nr_bytes;
> 128 buf += nr_bytes;
> 129 read += nr_bytes;
> 130 ++pfn;
> 131 offset = 0;
> 132 } while (count);
> 133
> 134 return read;
> 135 }
> 136
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>