From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752226AbeEPNUJ (ORCPT ); Wed, 16 May 2018 09:20:09 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:44416 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751151AbeEPNUH (ORCPT ); Wed, 16 May 2018 09:20:07 -0400 Subject: Re: [PATCH 1/2] add a function(ioremap_encrypted) for kdump when AMD sme enabled. To: Tom Lendacky , linux-kernel@vger.kernel.org Cc: kexec@lists.infradead.org, dyoung@redhat.com References: <20180515015133.4363-1-lijiang@redhat.com> <20180515015133.4363-2-lijiang@redhat.com> <8c8f20cc-b39d-137c-9d71-1e566f905acb@amd.com> From: lijiang Message-ID: <7b36c2ea-5e96-d554-aaff-97587bc268e9@redhat.com> Date: Wed, 16 May 2018 21:19:54 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <8c8f20cc-b39d-137c-9d71-1e566f905acb@amd.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2018年05月15日 22:34, Tom Lendacky 写道: > On 5/14/2018 8:51 PM, Lianbo Jiang wrote: >> It is convenient to remap the old memory encrypted to the second kernel >> by calling ioremap_encrypted(). >> >> Signed-off-by: Lianbo Jiang >> --- >> arch/x86/include/asm/io.h | 2 ++ >> arch/x86/mm/ioremap.c | 25 +++++++++++++++++-------- >> 2 files changed, 19 insertions(+), 8 deletions(-) >> >> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h >> index f6e5b93..06d2a9f 100644 >> --- a/arch/x86/include/asm/io.h >> +++ b/arch/x86/include/asm/io.h >> @@ -192,6 +192,8 @@ extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size); >> #define ioremap_cache ioremap_cache >> extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size, unsigned long prot_val); >> #define ioremap_prot ioremap_prot >> +extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long size); >> +#define ioremap_encrypted ioremap_encrypted >> >> /** >> * ioremap - map bus memory into CPU space >> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c >> index c63a545..7a52d1e 100644 >> --- a/arch/x86/mm/ioremap.c >> +++ b/arch/x86/mm/ioremap.c >> @@ -131,7 +131,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) >> { >> unsigned long offset, vaddr; >> resource_size_t last_addr; >> @@ -199,7 +200,8 @@ 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 && sme_active())) > > You only need the encrypted check here. If sme is not active, > then the pgprot_encrypted will basically be a no-op. > Great! Thank you, Tom. It will be fixed. Lianbo > Also, extra indents. > > Thanks, > Tom > >> prot = pgprot_encrypted(prot); >> >> switch (pcm) { >> @@ -291,7 +293,7 @@ void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size) >> enum page_cache_mode pcm = _PAGE_CACHE_MODE_UC_MINUS; >> >> return __ioremap_caller(phys_addr, size, pcm, >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL(ioremap_nocache); >> >> @@ -324,7 +326,7 @@ void __iomem *ioremap_uc(resource_size_t phys_addr, unsigned long size) >> enum page_cache_mode pcm = _PAGE_CACHE_MODE_UC; >> >> return __ioremap_caller(phys_addr, size, pcm, >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL_GPL(ioremap_uc); >> >> @@ -341,7 +343,7 @@ EXPORT_SYMBOL_GPL(ioremap_uc); >> void __iomem *ioremap_wc(resource_size_t phys_addr, unsigned long size) >> { >> return __ioremap_caller(phys_addr, size, _PAGE_CACHE_MODE_WC, >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL(ioremap_wc); >> >> @@ -358,14 +360,21 @@ EXPORT_SYMBOL(ioremap_wc); >> void __iomem *ioremap_wt(resource_size_t phys_addr, unsigned long size) >> { >> return __ioremap_caller(phys_addr, size, _PAGE_CACHE_MODE_WT, >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL(ioremap_wt); >> >> +void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long size) >> +{ >> + return __ioremap_caller(phys_addr, size, _PAGE_CACHE_MODE_WB, >> + __builtin_return_address(0), true); >> +} >> +EXPORT_SYMBOL(ioremap_encrypted); >> + >> void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size) >> { >> return __ioremap_caller(phys_addr, size, _PAGE_CACHE_MODE_WB, >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL(ioremap_cache); >> >> @@ -374,7 +383,7 @@ void __iomem *ioremap_prot(resource_size_t phys_addr, unsigned long size, >> { >> return __ioremap_caller(phys_addr, size, >> pgprot2cachemode(__pgprot(prot_val)), >> - __builtin_return_address(0)); >> + __builtin_return_address(0), false); >> } >> EXPORT_SYMBOL(ioremap_prot); >> >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73] helo=mx1.redhat.com) by casper.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fIwLs-00027O-6r for kexec@lists.infradead.org; Wed, 16 May 2018 13:20:21 +0000 Subject: Re: [PATCH 1/2] add a function(ioremap_encrypted) for kdump when AMD sme enabled. References: <20180515015133.4363-1-lijiang@redhat.com> <20180515015133.4363-2-lijiang@redhat.com> <8c8f20cc-b39d-137c-9d71-1e566f905acb@amd.com> From: lijiang Message-ID: <7b36c2ea-5e96-d554-aaff-97587bc268e9@redhat.com> Date: Wed, 16 May 2018 21:19:54 +0800 MIME-Version: 1.0 In-Reply-To: <8c8f20cc-b39d-137c-9d71-1e566f905acb@amd.com> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Tom Lendacky , linux-kernel@vger.kernel.org Cc: dyoung@redhat.com, kexec@lists.infradead.org CgrlnKggMjAxOOW5tDA15pyIMTXml6UgMjI6MzQsIFRvbSBMZW5kYWNreSDlhpnpgZM6Cj4gT24g NS8xNC8yMDE4IDg6NTEgUE0sIExpYW5ibyBKaWFuZyB3cm90ZToKPj4gSXQgaXMgY29udmVuaWVu dCB0byByZW1hcCB0aGUgb2xkIG1lbW9yeSBlbmNyeXB0ZWQgdG8gdGhlIHNlY29uZCBrZXJuZWwK Pj4gYnkgY2FsbGluZyBpb3JlbWFwX2VuY3J5cHRlZCgpLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBM aWFuYm8gSmlhbmcgPGxpamlhbmdAcmVkaGF0LmNvbT4KPj4gLS0tCj4+ICBhcmNoL3g4Ni9pbmNs dWRlL2FzbS9pby5oIHwgIDIgKysKPj4gIGFyY2gveDg2L21tL2lvcmVtYXAuYyAgICAgfCAyNSAr KysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9pby5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vaW8uaAo+PiBpbmRleCBmNmU1YjkzLi4w NmQyYTlmIDEwMDY0NAo+PiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pby5oCj4+ICsrKyBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvLmgKPj4gQEAgLTE5Miw2ICsxOTIsOCBAQCBleHRlcm4g dm9pZCBfX2lvbWVtICppb3JlbWFwX2NhY2hlKHJlc291cmNlX3NpemVfdCBvZmZzZXQsIHVuc2ln bmVkIGxvbmcgc2l6ZSk7Cj4+ICAjZGVmaW5lIGlvcmVtYXBfY2FjaGUgaW9yZW1hcF9jYWNoZQo+ PiAgZXh0ZXJuIHZvaWQgX19pb21lbSAqaW9yZW1hcF9wcm90KHJlc291cmNlX3NpemVfdCBvZmZz ZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBwcm90X3ZhbCk7Cj4+ICAjZGVm aW5lIGlvcmVtYXBfcHJvdCBpb3JlbWFwX3Byb3QKPj4gK2V4dGVybiB2b2lkIF9faW9tZW0gKmlv cmVtYXBfZW5jcnlwdGVkKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcg c2l6ZSk7Cj4+ICsjZGVmaW5lIGlvcmVtYXBfZW5jcnlwdGVkIGlvcmVtYXBfZW5jcnlwdGVkCj4+ ICAKPj4gIC8qKgo+PiAgICogaW9yZW1hcCAgICAgLSAgIG1hcCBidXMgbWVtb3J5IGludG8gQ1BV IHNwYWNlCj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMgYi9hcmNoL3g4Ni9t bS9pb3JlbWFwLmMKPj4gaW5kZXggYzYzYTU0NS4uN2E1MmQxZSAxMDA2NDQKPj4gLS0tIGEvYXJj aC94ODYvbW0vaW9yZW1hcC5jCj4+ICsrKyBiL2FyY2gveDg2L21tL2lvcmVtYXAuYwo+PiBAQCAt MTMxLDcgKzEzMSw4IEBAIHN0YXRpYyB2b2lkIF9faW9yZW1hcF9jaGVja19tZW0ocmVzb3VyY2Vf c2l6ZV90IGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4gICAqIGNhbGxlciBzaG91bGRuJ3Qg bmVlZCB0byBrbm93IHRoYXQgc21hbGwgZGV0YWlsLgo+PiAgICovCj4+ICBzdGF0aWMgdm9pZCBf X2lvbWVtICpfX2lvcmVtYXBfY2FsbGVyKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsCj4+IC0J CXVuc2lnbmVkIGxvbmcgc2l6ZSwgZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtLCB2b2lkICpjYWxs ZXIpCj4+ICsJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtLAo+ PiArCQl2b2lkICpjYWxsZXIsIGJvb2wgZW5jcnlwdGVkKQo+PiAgewo+PiAgCXVuc2lnbmVkIGxv bmcgb2Zmc2V0LCB2YWRkcjsKPj4gIAlyZXNvdXJjZV9zaXplX3QgbGFzdF9hZGRyOwo+PiBAQCAt MTk5LDcgKzIwMCw4IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKl9faW9yZW1hcF9jYWxsZXIocmVz b3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwKPj4gIAkgKiByZXN1bHRpbmcgbWFwcGluZy4KPj4gIAkg Ki8KPj4gIAlwcm90ID0gUEFHRV9LRVJORUxfSU87Cj4+IC0JaWYgKHNldl9hY3RpdmUoKSAmJiBt ZW1fZmxhZ3MuZGVzY19vdGhlcikKPj4gKwlpZiAoKHNldl9hY3RpdmUoKSAmJiBtZW1fZmxhZ3Mu ZGVzY19vdGhlcikgfHwKPj4gKwkJCShlbmNyeXB0ZWQgJiYgc21lX2FjdGl2ZSgpKSkKPiAKPiBZ b3Ugb25seSBuZWVkIHRoZSBlbmNyeXB0ZWQgY2hlY2sgaGVyZS4gIElmIHNtZSBpcyBub3QgYWN0 aXZlLAo+IHRoZW4gdGhlIHBncHJvdF9lbmNyeXB0ZWQgd2lsbCBiYXNpY2FsbHkgYmUgYSBuby1v cC4KPiAKR3JlYXQhIFRoYW5rIHlvdSwgVG9tLgpJdCB3aWxsIGJlIGZpeGVkLgoKTGlhbmJvCj4g QWxzbywgZXh0cmEgaW5kZW50cy4KPiAKPiBUaGFua3MsCj4gVG9tCj4gCj4+ICAJCXByb3QgPSBw Z3Byb3RfZW5jcnlwdGVkKHByb3QpOwo+PiAgCj4+ICAJc3dpdGNoIChwY20pIHsKPj4gQEAgLTI5 MSw3ICsyOTMsNyBAQCB2b2lkIF9faW9tZW0gKmlvcmVtYXBfbm9jYWNoZShyZXNvdXJjZV9zaXpl X3QgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCj4+ICAJZW51bSBwYWdlX2NhY2hlX21v ZGUgcGNtID0gX1BBR0VfQ0FDSEVfTU9ERV9VQ19NSU5VUzsKPj4gIAo+PiAgCXJldHVybiBfX2lv cmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgcGNtLAo+PiAtCQkJCV9fYnVpbHRpbl9yZXR1 cm5fYWRkcmVzcygwKSk7Cj4+ICsJCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCBmYWxz ZSk7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGlvcmVtYXBfbm9jYWNoZSk7Cj4+ICAKPj4gQEAg LTMyNCw3ICszMjYsNyBAQCB2b2lkIF9faW9tZW0gKmlvcmVtYXBfdWMocmVzb3VyY2Vfc2l6ZV90 IHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQo+PiAgCWVudW0gcGFnZV9jYWNoZV9tb2Rl IHBjbSA9IF9QQUdFX0NBQ0hFX01PREVfVUM7Cj4+ICAKPj4gIAlyZXR1cm4gX19pb3JlbWFwX2Nh bGxlcihwaHlzX2FkZHIsIHNpemUsIHBjbSwKPj4gLQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJl c3MoMCkpOwo+PiArCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgZmFsc2UpOwo+PiAg fQo+PiAgRVhQT1JUX1NZTUJPTF9HUEwoaW9yZW1hcF91Yyk7Cj4+ICAKPj4gQEAgLTM0MSw3ICsz NDMsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChpb3JlbWFwX3VjKTsKPj4gIHZvaWQgX19pb21lbSAq aW9yZW1hcF93YyhyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUp Cj4+ICB7Cj4+ICAJcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyLCBzaXplLCBfUEFH RV9DQUNIRV9NT0RFX1dDLAo+PiAtCQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwo+ PiArCQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksIGZhbHNlKTsKPj4gIH0KPj4gIEVY UE9SVF9TWU1CT0woaW9yZW1hcF93Yyk7Cj4+ICAKPj4gQEAgLTM1OCwxNCArMzYwLDIxIEBAIEVY UE9SVF9TWU1CT0woaW9yZW1hcF93Yyk7Cj4+ICB2b2lkIF9faW9tZW0gKmlvcmVtYXBfd3QocmVz b3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQo+PiAgewo+PiAgCXJl dHVybiBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgX1BBR0VfQ0FDSEVfTU9ERV9X VCwKPj4gLQkJCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKPj4gKwkJCQkJX19idWls dGluX3JldHVybl9hZGRyZXNzKDApLCBmYWxzZSk7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGlv cmVtYXBfd3QpOwo+PiAgCj4+ICt2b2lkIF9faW9tZW0gKmlvcmVtYXBfZW5jcnlwdGVkKHJlc291 cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKPj4gK3sKPj4gKwlyZXR1 cm4gX19pb3JlbWFwX2NhbGxlcihwaHlzX2FkZHIsIHNpemUsIF9QQUdFX0NBQ0hFX01PREVfV0Is Cj4+ICsJCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCB0cnVlKTsKPj4gK30KPj4gK0VY UE9SVF9TWU1CT0woaW9yZW1hcF9lbmNyeXB0ZWQpOwo+PiArCj4+ICB2b2lkIF9faW9tZW0gKmlv cmVtYXBfY2FjaGUocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXpl KQo+PiAgewo+PiAgCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgX1BB R0VfQ0FDSEVfTU9ERV9XQiwKPj4gLQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwo+ PiArCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgZmFsc2UpOwo+PiAgfQo+PiAgRVhQ T1JUX1NZTUJPTChpb3JlbWFwX2NhY2hlKTsKPj4gIAo+PiBAQCAtMzc0LDcgKzM4Myw3IEBAIHZv aWQgX19pb21lbSAqaW9yZW1hcF9wcm90KHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2ln bmVkIGxvbmcgc2l6ZSwKPj4gIHsKPj4gIAlyZXR1cm4gX19pb3JlbWFwX2NhbGxlcihwaHlzX2Fk ZHIsIHNpemUsCj4+ICAJCQkJcGdwcm90MmNhY2hlbW9kZShfX3BncHJvdChwcm90X3ZhbCkpLAo+ PiAtCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7Cj4+ICsJCQkJX19idWlsdGluX3Jl dHVybl9hZGRyZXNzKDApLCBmYWxzZSk7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGlvcmVtYXBf cHJvdCk7Cj4+ICAKPj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK