From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.skyhub.de ([5.9.137.197]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hL6l2-000683-1f for kexec@lists.infradead.org; Mon, 29 Apr 2019 13:55:50 +0000 Date: Mon, 29 Apr 2019 15:55:36 +0200 From: Borislav Petkov Subject: Re: [PATCH v6 1/2] x86/kexec: Build identity mapping for EFI systab and ACPI tables Message-ID: <20190429135536.GC2324@zn.tnic> References: <20190424092944.30481-1-bhe@redhat.com> <20190424092944.30481-2-bhe@redhat.com> <20190429002318.GA25400@MiWiFi-R3L-srv> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190429002318.GA25400@MiWiFi-R3L-srv> 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: Baoquan He Cc: fanc.fnst@cn.fujitsu.com, kasong@redhat.com, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, hpa@zytor.com, j-nomura@ce.jp.nec.com, tglx@linutronix.de, dyoung@redhat.com T24gTW9uLCBBcHIgMjksIDIwMTkgYXQgMDg6MjM6MThBTSArMDgwMCwgQmFvcXVhbiBIZSB3cm90 ZToKPiArc3RhdGljIGludAo+ICttYXBfYWNwaV90YWJsZXMoc3RydWN0IHg4Nl9tYXBwaW5nX2lu Zm8gKmluZm8sIHBnZF90ICpsZXZlbDRwKQo+ICt7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzID0g SU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1k7Cj4gKwlzdHJ1Y3QgaW5pdF9wZ3RhYmxl X2RhdGEgZGF0YTsKPiArCj4gKwlkYXRhLmluZm8gPSBpbmZvOwo+ICsJZGF0YS5sZXZlbDRwID0g bGV2ZWw0cDsKPiArCWZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1k7Cj4g KwlyZXR1cm4gd2Fsa19pb21lbV9yZXNfZGVzYyhJT1JFU19ERVNDX0FDUElfVEFCTEVTLCBmbGFn cywgMCwgLTEsCj4gKwkJCQkgICAmZGF0YSwgbWVtX3JlZ2lvbl9jYWxsYmFjayk7Cj4gK30KPiAr I2Vsc2UKPiArc3RhdGljIGludCBpbml0X2FjcGlfcGd0YWJsZShzdHJ1Y3QgeDg2X21hcHBpbmdf aW5mbyAqaW5mbywKCkRpZCB5b3UgYXQgbGVhc3QgYnVpbGQtdGVzdCB0aGUgIUNPTkZJR19BQ1BJ IGNhc2U/CgphcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jOiBJbiBmdW5jdGlvbiDi gJhpbml0X3BndGFibGXigJk6CmFyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmM6MjM3 OjExOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYbWFwX2FjcGlf dGFibGVz4oCZOyBkaWQgeW91IG1lYW4g4oCYaW5pdF9hY3BpX3BndGFibGXigJk/IFstV2Vycm9y PWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJlc3VsdCA9IG1hcF9hY3BpX3RhYmxl cygmaW5mbywgbGV2ZWw0cCk7CiAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAg aW5pdF9hY3BpX3BndGFibGUKCgpJIGRvbid0IHRoaW5rIHNvLiA7LSgKClNpZ2gsIG5leHQgdGlt ZSBhdCBsZWFzdCBidWlsZC10ZXN0IHlvdXIgcGF0Y2ggYmVmb3JlIGh1cnJ5aW5nIGl0IG91dC4g SQpmaXhlZCBpdCB1cCBhbG9uZyB3aXRoIGRlY3lwaGVyaW5nIHRoZSBjb21taXQgbWVzc2FnZToK Ci0tLQpGcm9tOiBLYWlydWkgU29uZyA8a2Fzb25nQHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMjkg QXByIDIwMTkgMDg6MjM6MTggKzA4MDAKU3ViamVjdDogW1BBVENIXSB4ODYva2V4ZWM6IEFkZCB0 aGUgRUZJIHN5c3RlbSB0YWJsZXMgYW5kIEFDUEkgdGFibGVzIHRvIHRoZSBpZGVudCBtYXAKCkN1 cnJlbnRseSwgb25seSB0aGUgd2hvbGUgcGh5c2ljYWwgbWVtb3J5IGlzIGlkZW50aXR5LW1hcHBl ZCBmb3IgdGhlCmtleGVjIGtlcm5lbCBhbmQgdGhlIHJlZ2lvbnMgcmVzZXJ2ZWQgYnkgZmlybXdh cmUgYXJlIGlnbm9yZWQuCgpIb3dldmVyLCB0aGUgcmVjZW50IGFkZGl0aW9uIG9mIFJTRFAgcGFy c2luZyBpbiB0aGUgZGVjb21wcmVzc2lvbiBzdGFnZQphbmQgZXNwZWNpYWxseToKCiAgMzNmMGRm OGQ4NDNkICgieDg2L2Jvb3Q6IFNlYXJjaCBmb3IgUlNEUCBpbiB0aGUgRUZJIHRhYmxlcyIpCgp3 aGljaCB0cmllcyB0byBhY2Nlc3MgRUZJIHN5c3RlbSB0YWJsZXMgYW5kIHRvIGRpZyBvdXQgdGhl IFJEU1AgYWRkcmVzcwpmcm9tIHRoZXJlLCBiZWNvbWVzIGEgcHJvYmxlbSBiZWNhdXNlIGluIGNl cnRhaW4gY29uZmlndXJhdGlvbnMsIHRoZXkKbWlnaHQgbm90IGJlIG1hcHBlZCBpbiB0aGUga2V4 ZWMnZWQga2VybmVsJ3MgYWRkcmVzcyBzcGFjZS4KCldoYXQgaXMgbW9yZSwgdGhpcyBwcm9ibGVt IGRvZXNuJ3QgYXBwZWFyIG9uIGFsbCBzeXN0ZW1zIGJlY2F1c2UgdGhlCmtleGVjIGtlcm5lbCB1 c2VzIGdpZ2FieXRlIHBhZ2VzIHRvIGJ1aWxkIHRoZSBpZGVudGl0eSBtYXBwaW5nLiBBbmQKdGhl IEVGSSBzeXN0ZW0gdGFibGVzIGFuZCBBQ1BJIHRhYmxlcyBjYW4sIGRlcGVuZGluZyBvbiB0aGUg c3lzdGVtCmNvbmZpZ3VyYXRpb24sIGVuZCB1cCBiZWluZyBtYXBwZWQgYXMgcGFydCBvZiBhbGwg cGh5c2ljYWwgbWVtb3J5LCBpZgp0aGV5IHNoYXJlIHRoZSBzYW1lIDEgR0IgYXJlYSB3aXRoIHRo ZSBwaHlzaWNhbCBtZW1vcnkuCgpUaGVyZWZvcmUsIG1ha2Ugc3VyZSB0aGV5J3JlIGFsd2F5cyBt YXBwZWQuCgogWyBicDogcHJvZHVjdGl6ZSBoYWxmLWJha2VkIHBhdGNoOgogICAtIHJld3JpdGUg Y29tbWl0IG1lc3NhZ2UuCiAgIC0gcy9pbml0X2FjcGlfcGd0YWJsZS9tYXBfYWNwaV90YWJsZXMv IGluIHRoZSAhQUNQSSBjYXNlLiBdCgpTaWduZWQtb2ZmLWJ5OiBLYWlydWkgU29uZyA8a2Fzb25n QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEJhb3F1YW4gSGUgPGJoZUByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+CkNjOiBkeW91bmdAcmVk aGF0LmNvbQpDYzogZmFuYy5mbnN0QGNuLmZ1aml0c3UuY29tCkNjOiAiSC4gUGV0ZXIgQW52aW4i IDxocGFAenl0b3IuY29tPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CkNjOiBq LW5vbXVyYUBjZS5qcC5uZWMuY29tCkNjOiBrZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiAi S2lyaWxsIEEuIFNodXRlbW92IiA8a2lyaWxsLnNodXRlbW92QGxpbnV4LmludGVsLmNvbT4KQ2M6 IExpYW5ibyBKaWFuZyA8bGlqaWFuZ0ByZWRoYXQuY29tPgpDYzogVGV0c3VvIEhhbmRhIDxwZW5n dWluLWtlcm5lbEBJLWxvdmUuU0FLVVJBLm5lLmpwPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4 QGxpbnV0cm9uaXguZGU+CkNjOiB4ODYtbWwgPHg4NkBrZXJuZWwub3JnPgpMaW5rOiBodHRwczov L2xrbWwua2VybmVsLm9yZy9yLzIwMTkwNDI5MDAyMzE4LkdBMjU0MDBATWlXaUZpLVIzTC1zcnYK LS0tCiBhcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jIHwgNzUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMgYi9hcmNoL3g4Ni9r ZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCmluZGV4IGNlYmE0MDhlYTk4Mi4uM2M3N2JkZjdiMzJh IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNs dWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KICNpbmNsdWRlIDxs aW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvZWZpLmg+CiAKICNpbmNsdWRlIDxhc20v aW5pdC5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CkBAIC0yOSw2ICszMCw0MyBAQAogI2lu Y2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9zZXRfbWVtb3J5Lmg+CiAKKyNpZmRl ZiBDT05GSUdfQUNQSQorLyoKKyAqIFVzZWQgd2hpbGUgYWRkaW5nIG1hcHBpbmcgZm9yIEFDUEkg dGFibGVzLgorICogQ2FuIGJlIHJldXNlZCB3aGVuIG90aGVyIGlvbWVtIHJlZ2lvbnMgbmVlZCBi ZSBtYXBwZWQKKyAqLworc3RydWN0IGluaXRfcGd0YWJsZV9kYXRhIHsKKwlzdHJ1Y3QgeDg2X21h cHBpbmdfaW5mbyAqaW5mbzsKKwlwZ2RfdCAqbGV2ZWw0cDsKK307CisKK3N0YXRpYyBpbnQgbWVt X3JlZ2lvbl9jYWxsYmFjayhzdHJ1Y3QgcmVzb3VyY2UgKnJlcywgdm9pZCAqYXJnKQoreworCXN0 cnVjdCBpbml0X3BndGFibGVfZGF0YSAqZGF0YSA9IGFyZzsKKwl1bnNpZ25lZCBsb25nIG1zdGFy dCwgbWVuZDsKKworCW1zdGFydCA9IHJlcy0+c3RhcnQ7CisJbWVuZCA9IG1zdGFydCArIHJlc291 cmNlX3NpemUocmVzKSAtIDE7CisKKwlyZXR1cm4ga2VybmVsX2lkZW50X21hcHBpbmdfaW5pdChk YXRhLT5pbmZvLCBkYXRhLT5sZXZlbDRwLCBtc3RhcnQsIG1lbmQpOworfQorCitzdGF0aWMgaW50 CittYXBfYWNwaV90YWJsZXMoc3RydWN0IHg4Nl9tYXBwaW5nX2luZm8gKmluZm8sIHBnZF90ICps ZXZlbDRwKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVT T1VSQ0VfQlVTWTsKKwlzdHJ1Y3QgaW5pdF9wZ3RhYmxlX2RhdGEgZGF0YTsKKworCWRhdGEuaW5m byA9IGluZm87CisJZGF0YS5sZXZlbDRwID0gbGV2ZWw0cDsKKwlmbGFncyA9IElPUkVTT1VSQ0Vf TUVNIHwgSU9SRVNPVVJDRV9CVVNZOworCXJldHVybiB3YWxrX2lvbWVtX3Jlc19kZXNjKElPUkVT X0RFU0NfQUNQSV9UQUJMRVMsIGZsYWdzLCAwLCAtMSwKKwkJCQkgICAmZGF0YSwgbWVtX3JlZ2lv bl9jYWxsYmFjayk7Cit9CisjZWxzZQorc3RhdGljIGludCBtYXBfYWNwaV90YWJsZXMoc3RydWN0 IHg4Nl9tYXBwaW5nX2luZm8gKmluZm8sIHBnZF90ICpsZXZlbDRwKSB7IHJldHVybiAwOyB9Cisj ZW5kaWYKKwogI2lmZGVmIENPTkZJR19LRVhFQ19GSUxFCiBjb25zdCBzdHJ1Y3Qga2V4ZWNfZmls ZV9vcHMgKiBjb25zdCBrZXhlY19maWxlX2xvYWRlcnNbXSA9IHsKIAkJJmtleGVjX2J6SW1hZ2U2 NF9vcHMsCkBAIC0zNiw2ICs3NCwzMSBAQCBjb25zdCBzdHJ1Y3Qga2V4ZWNfZmlsZV9vcHMgKiBj b25zdCBrZXhlY19maWxlX2xvYWRlcnNbXSA9IHsKIH07CiAjZW5kaWYKIAorc3RhdGljIGludAor bWFwX2VmaV9zeXN0YWIoc3RydWN0IHg4Nl9tYXBwaW5nX2luZm8gKmluZm8sIHBnZF90ICpsZXZl bDRwKQoreworI2lmZGVmIENPTkZJR19FRkkKKwl1bnNpZ25lZCBsb25nIG1zdGFydCwgbWVuZDsK KworCWlmICghZWZpX2VuYWJsZWQoRUZJX0JPT1QpKQorCQlyZXR1cm4gMDsKKworCW1zdGFydCA9 IChib290X3BhcmFtcy5lZmlfaW5mby5lZmlfc3lzdGFiIHwKKwkJCSgodTY0KWJvb3RfcGFyYW1z LmVmaV9pbmZvLmVmaV9zeXN0YWJfaGk8PDMyKSk7CisKKwlpZiAoZWZpX2VuYWJsZWQoRUZJXzY0 QklUKSkKKwkJbWVuZCA9IG1zdGFydCArIHNpemVvZihlZmlfc3lzdGVtX3RhYmxlXzY0X3QpOwor CWVsc2UKKwkJbWVuZCA9IG1zdGFydCArIHNpemVvZihlZmlfc3lzdGVtX3RhYmxlXzMyX3QpOwor CisJaWYgKCFtc3RhcnQpCisJCXJldHVybiAwOworCisJcmV0dXJuIGtlcm5lbF9pZGVudF9tYXBw aW5nX2luaXQoaW5mbywgbGV2ZWw0cCwgbXN0YXJ0LCBtZW5kKTsKKyNlbmRpZgorCXJldHVybiAw OworfQorCiBzdGF0aWMgdm9pZCBmcmVlX3RyYW5zaXRpb25fcGd0YWJsZShzdHJ1Y3Qga2ltYWdl ICppbWFnZSkKIHsKIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpaW1hZ2UtPmFyY2gucDRkKTsK QEAgLTE1OSw2ICsyMjIsMTggQEAgc3RhdGljIGludCBpbml0X3BndGFibGUoc3RydWN0IGtpbWFn ZSAqaW1hZ2UsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGd0YWJsZSkKIAkJCXJldHVybiByZXN1bHQ7 CiAJfQogCisJLyoKKwkgKiBQcmVwYXJlIEVGSSBzeXN0YWIgYW5kIEFDUEkgdGFibGVzIGZvciBr ZXhlYyBrZXJuZWwgc2luY2UgdGhleSBhcmUKKwkgKiBub3QgY292ZXJlZCBieSBwZm5fbWFwcGVk LgorCSAqLworCXJlc3VsdCA9IG1hcF9lZmlfc3lzdGFiKCZpbmZvLCBsZXZlbDRwKTsKKwlpZiAo cmVzdWx0KQorCQlyZXR1cm4gcmVzdWx0OworCisJcmVzdWx0ID0gbWFwX2FjcGlfdGFibGVzKCZp bmZvLCBsZXZlbDRwKTsKKwlpZiAocmVzdWx0KQorCQlyZXR1cm4gcmVzdWx0OworCiAJcmV0dXJu IGluaXRfdHJhbnNpdGlvbl9wZ3RhYmxlKGltYWdlLCBsZXZlbDRwKTsKIH0KIAotLSAKMi4yMS4w CgotLSAKUmVnYXJkcy9HcnVzcywKICAgIEJvcmlzLgoKR29vZCBtYWlsaW5nIHByYWN0aWNlcyBm b3IgNDAwOiBhdm9pZCB0b3AtcG9zdGluZyBhbmQgdHJpbSB0aGUgcmVwbHkuCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprZXhlYyBtYWlsaW5nIGxpc3QK a2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2tleGVjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E86A4C43219 for ; Mon, 29 Apr 2019 13:55:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B0BD220652 for ; Mon, 29 Apr 2019 13:55:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alien8.de header.i=@alien8.de header.b="WXH8zV6s" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728253AbfD2Nzp (ORCPT ); Mon, 29 Apr 2019 09:55:45 -0400 Received: from mail.skyhub.de ([5.9.137.197]:40790 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725838AbfD2Nzp (ORCPT ); Mon, 29 Apr 2019 09:55:45 -0400 Received: from zn.tnic (p200300EC2F073600329C23FFFEA6A903.dip0.t-ipconnect.de [IPv6:2003:ec:2f07:3600:329c:23ff:fea6:a903]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 38CAF1EC014A; Mon, 29 Apr 2019 15:55:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1556546143; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pkKmQx1hXyy8yc+54Irk8GBhU0FUwLSYEGMtUyIifSQ=; b=WXH8zV6ssFWvah6GS6OaGyVtonfgmw3FoGJwMsdAf4qccou6hk/IPHMk/bjUAn0ARuYxHl EOKAAnJYV0oISYMsL6g7ybg6XGU6XPdz6ZFFT8yPUHD/7lVnl5tonjLhRKbyO89iLsUtFE VIm6zXvR7AKAshtaT2unlq8odKNypn8= Date: Mon, 29 Apr 2019 15:55:36 +0200 From: Borislav Petkov To: Baoquan He Cc: j-nomura@ce.jp.nec.com, kasong@redhat.com, dyoung@redhat.com, fanc.fnst@cn.fujitsu.com, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, hpa@zytor.com, tglx@linutronix.de Subject: Re: [PATCH v6 1/2] x86/kexec: Build identity mapping for EFI systab and ACPI tables Message-ID: <20190429135536.GC2324@zn.tnic> References: <20190424092944.30481-1-bhe@redhat.com> <20190424092944.30481-2-bhe@redhat.com> <20190429002318.GA25400@MiWiFi-R3L-srv> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190429002318.GA25400@MiWiFi-R3L-srv> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 29, 2019 at 08:23:18AM +0800, Baoquan He wrote: > +static int > +map_acpi_tables(struct x86_mapping_info *info, pgd_t *level4p) > +{ > + unsigned long flags = IORESOURCE_MEM | IORESOURCE_BUSY; > + struct init_pgtable_data data; > + > + data.info = info; > + data.level4p = level4p; > + flags = IORESOURCE_MEM | IORESOURCE_BUSY; > + return walk_iomem_res_desc(IORES_DESC_ACPI_TABLES, flags, 0, -1, > + &data, mem_region_callback); > +} > +#else > +static int init_acpi_pgtable(struct x86_mapping_info *info, Did you at least build-test the !CONFIG_ACPI case? arch/x86/kernel/machine_kexec_64.c: In function ‘init_pgtable’: arch/x86/kernel/machine_kexec_64.c:237:11: error: implicit declaration of function ‘map_acpi_tables’; did you mean ‘init_acpi_pgtable’? [-Werror=implicit-function-declaration] result = map_acpi_tables(&info, level4p); ^~~~~~~~~~~~~~~ init_acpi_pgtable I don't think so. ;-( Sigh, next time at least build-test your patch before hurrying it out. I fixed it up along with decyphering the commit message: --- From: Kairui Song Date: Mon, 29 Apr 2019 08:23:18 +0800 Subject: [PATCH] x86/kexec: Add the EFI system tables and ACPI tables to the ident map Currently, only the whole physical memory is identity-mapped for the kexec kernel and the regions reserved by firmware are ignored. However, the recent addition of RSDP parsing in the decompression stage and especially: 33f0df8d843d ("x86/boot: Search for RSDP in the EFI tables") which tries to access EFI system tables and to dig out the RDSP address from there, becomes a problem because in certain configurations, they might not be mapped in the kexec'ed kernel's address space. What is more, this problem doesn't appear on all systems because the kexec kernel uses gigabyte pages to build the identity mapping. And the EFI system tables and ACPI tables can, depending on the system configuration, end up being mapped as part of all physical memory, if they share the same 1 GB area with the physical memory. Therefore, make sure they're always mapped. [ bp: productize half-baked patch: - rewrite commit message. - s/init_acpi_pgtable/map_acpi_tables/ in the !ACPI case. ] Signed-off-by: Kairui Song Signed-off-by: Baoquan He Signed-off-by: Borislav Petkov Cc: dyoung@redhat.com Cc: fanc.fnst@cn.fujitsu.com Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: j-nomura@ce.jp.nec.com Cc: kexec@lists.infradead.org Cc: "Kirill A. Shutemov" Cc: Lianbo Jiang Cc: Tetsuo Handa Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190429002318.GA25400@MiWiFi-R3L-srv --- arch/x86/kernel/machine_kexec_64.c | 75 ++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c index ceba408ea982..3c77bdf7b32a 100644 --- a/arch/x86/kernel/machine_kexec_64.c +++ b/arch/x86/kernel/machine_kexec_64.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -29,6 +30,43 @@ #include #include +#ifdef CONFIG_ACPI +/* + * Used while adding mapping for ACPI tables. + * Can be reused when other iomem regions need be mapped + */ +struct init_pgtable_data { + struct x86_mapping_info *info; + pgd_t *level4p; +}; + +static int mem_region_callback(struct resource *res, void *arg) +{ + struct init_pgtable_data *data = arg; + unsigned long mstart, mend; + + mstart = res->start; + mend = mstart + resource_size(res) - 1; + + return kernel_ident_mapping_init(data->info, data->level4p, mstart, mend); +} + +static int +map_acpi_tables(struct x86_mapping_info *info, pgd_t *level4p) +{ + unsigned long flags = IORESOURCE_MEM | IORESOURCE_BUSY; + struct init_pgtable_data data; + + data.info = info; + data.level4p = level4p; + flags = IORESOURCE_MEM | IORESOURCE_BUSY; + return walk_iomem_res_desc(IORES_DESC_ACPI_TABLES, flags, 0, -1, + &data, mem_region_callback); +} +#else +static int map_acpi_tables(struct x86_mapping_info *info, pgd_t *level4p) { return 0; } +#endif + #ifdef CONFIG_KEXEC_FILE const struct kexec_file_ops * const kexec_file_loaders[] = { &kexec_bzImage64_ops, @@ -36,6 +74,31 @@ const struct kexec_file_ops * const kexec_file_loaders[] = { }; #endif +static int +map_efi_systab(struct x86_mapping_info *info, pgd_t *level4p) +{ +#ifdef CONFIG_EFI + unsigned long mstart, mend; + + if (!efi_enabled(EFI_BOOT)) + return 0; + + mstart = (boot_params.efi_info.efi_systab | + ((u64)boot_params.efi_info.efi_systab_hi<<32)); + + if (efi_enabled(EFI_64BIT)) + mend = mstart + sizeof(efi_system_table_64_t); + else + mend = mstart + sizeof(efi_system_table_32_t); + + if (!mstart) + return 0; + + return kernel_ident_mapping_init(info, level4p, mstart, mend); +#endif + return 0; +} + static void free_transition_pgtable(struct kimage *image) { free_page((unsigned long)image->arch.p4d); @@ -159,6 +222,18 @@ static int init_pgtable(struct kimage *image, unsigned long start_pgtable) return result; } + /* + * Prepare EFI systab and ACPI tables for kexec kernel since they are + * not covered by pfn_mapped. + */ + result = map_efi_systab(&info, level4p); + if (result) + return result; + + result = map_acpi_tables(&info, level4p); + if (result) + return result; + return init_transition_pgtable(image, level4p); } -- 2.21.0 -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.