From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Luis R. Rodriguez" Subject: [PATCH v5 06/14] x86/init: use a platform legacy quirk for ebda Date: Fri, 8 Apr 2016 16:40:17 -0700 Message-ID: <1460158825-13117-7-git-send-email-mcgrof@kernel.org> References: <1460158825-13117-1-git-send-email-mcgrof@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460158825-13117-1-git-send-email-mcgrof@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: bp@alien8.de, hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, rusty@rustcorp.com.au Cc: kozerkov@parallels.com, matt@codeblueprint.co.uk, lv.zheng@intel.com, xen-devel@lists.xensource.com, joro@8bytes.org, x86@kernel.org, robert.moore@intel.com, linux-acpi@vger.kernel.org, glin@suse.com, lenb@kernel.org, josh@joshtriplett.org, jlee@suse.com, lguest@lists.ozlabs.org, boris.ostrovsky@oracle.com, andriy.shevchenko@linux.intel.com, toshi.kani@hp.com, andrew.cooper3@citrix.com, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, luto@amacapital.net, "Luis R. Rodriguez" , david.vrabel@citrix.com, tiwai@suse.de List-Id: linux-acpi@vger.kernel.org VGhpcyByZXBsYWNlcyB0aGUgcGFyYXZpcnRfZW5hYmxlZCgpIGNoZWNrIHdpdGggYQpwcm9wZXIg eDg2IGxlZ2FjeSBwbGF0Zm9ybSBxdWlyay4KCkFzIHBlciAwLWRheSwgdGhpcyBidW1wcyB0aGUg dm1saW51eCBzaXplIHVzaW5nIGkzODYtdGlueWNvbmZpZyBhcwpmb2xsb3dzOgoKVE9UQUwgICBU RVhUICAgaW5pdC50ZXh0ICAgeDg2X2Vhcmx5X2luaXRfcGxhdGZvcm1fcXVpcmtzKCkKKzM5ICAg ICArMzUgICAgKzM1ICAgICAgICAgKzI1CgpUaGF0J3MgYSA0IGJ5dGUgdG90YWwgb3ZlcmhlYWQs IHRoZSByZXN0IGlzIGFsbCBjbGVhcmVkIG91dAp1cG9uIGluaXQgYXMgaXRzIGFsbCBfX2luaXQg dGV4dC4KCnYyOiBkb2N1bWVudCAwLWRheSB2bWxpbnV4IHNpemUgaW1wYWN0CgpTaWduZWQtb2Zm LWJ5OiBMdWlzIFIuIFJvZHJpZ3VleiA8bWNncm9mQGtlcm5lbC5vcmc+Ci0tLQogYXJjaC94ODYv aW5jbHVkZS9hc20veDg2X2luaXQuaCAgIHwgMyArKysKIGFyY2gveDg2L2tlcm5lbC9oZWFkLmMg ICAgICAgICAgICB8IDIgKy0KIGFyY2gveDg2L2tlcm5lbC9wbGF0Zm9ybS1xdWlya3MuYyB8IDQg KysrKwogMyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIGIvYXJjaC94ODYvaW5j bHVkZS9hc20veDg2X2luaXQuaAppbmRleCA4YmI4YzFhNDYxNWEuLjg5ZDlkNTdlMTQ1ZCAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaAorKysgYi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS94ODZfaW5pdC5oCkBAIC0xNDUsOSArMTQ1LDEyIEBAIHN0cnVjdCB0aW1lc3Bl YzsKICAqIHN0cnVjdCB4ODZfbGVnYWN5X2ZlYXR1cmVzIC0gbGVnYWN5IHg4NiBmZWF0dXJlcwog ICoKICAqIEBydGM6IHRoaXMgZGV2aWNlIGhhcyBhIENNT1MgcmVhbC10aW1lIGNsb2NrIHByZXNl bnQKKyAqIEBlYmRhX3NlYXJjaDogaXQncyBzYWZlIHRvIHNlYXJjaCBmb3IgdGhlIEVCREEgc2ln bmF0dXJlIGluIHRoZSBoYXJkd2FyZSdzCisgKiAJbG93IFJBTQogICovCiBzdHJ1Y3QgeDg2X2xl Z2FjeV9mZWF0dXJlcyB7CiAJaW50IHJ0YzsKKwlpbnQgZWJkYV9zZWFyY2g7CiB9OwogCiAvKioK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVh ZC5jCmluZGV4IDk5MmY0NDJjYTE1NS4uYWZlNjVkZmZlZTgwIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvaGVhZC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMKQEAgLTM4LDcgKzM4 LDcgQEAgdm9pZCBfX2luaXQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKQogCSAqIHRoYXQgdGhl IHBhcmF2aXJ0IGNhc2UgY2FuIGhhbmRsZSBtZW1vcnkgc2V0dXAKIAkgKiBjb3JyZWN0bHksIHdp dGhvdXQgb3VyIGhlbHAuCiAJICovCi0JaWYgKHBhcmF2aXJ0X2VuYWJsZWQoKSkKKwlpZiAoIXg4 Nl9wbGF0Zm9ybS5sZWdhY3kuZWJkYV9zZWFyY2gpCiAJCXJldHVybjsKIAogCS8qIGVuZCBvZiBs b3cgKGNvbnZlbnRpb25hbCkgbWVtb3J5ICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv cGxhdGZvcm0tcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGxhdGZvcm0tcXVpcmtzLmMKaW5k ZXggMDIxYTVmOTczY2UzLi4wMWIxNTk3ODFkOTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5l bC9wbGF0Zm9ybS1xdWlya3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGxhdGZvcm0tcXVpcmtz LmMKQEAgLTcsOCArNywxMiBAQAogdm9pZCBfX2luaXQgeDg2X2Vhcmx5X2luaXRfcGxhdGZvcm1f cXVpcmtzKHZvaWQpCiB7CiAJeDg2X3BsYXRmb3JtLmxlZ2FjeS5ydGMgPSAxOworCXg4Nl9wbGF0 Zm9ybS5sZWdhY3kuZWJkYV9zZWFyY2ggPSAwOwogCiAJc3dpdGNoIChib290X3BhcmFtcy5oZHIu aGFyZHdhcmVfc3ViYXJjaCkgeworCWNhc2UgWDg2X1NVQkFSQ0hfUEM6CisJCXg4Nl9wbGF0Zm9y bS5sZWdhY3kuZWJkYV9zZWFyY2ggPSAxOworCQlicmVhazsKIAljYXNlIFg4Nl9TVUJBUkNIX1hF TjoKIAljYXNlIFg4Nl9TVUJBUkNIX0xHVUVTVDoKIAljYXNlIFg4Nl9TVUJBUkNIX0lOVEVMX01J RDoKLS0gCjIuNy4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932926AbcDHXlD (ORCPT ); Fri, 8 Apr 2016 19:41:03 -0400 Received: from mail.kernel.org ([198.145.29.136]:39883 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932895AbcDHXlA (ORCPT ); Fri, 8 Apr 2016 19:41:00 -0400 From: "Luis R. Rodriguez" To: bp@alien8.de, hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, rusty@rustcorp.com.au Cc: x86@kernel.org, linux-kernel@vger.kernel.org, luto@amacapital.net, boris.ostrovsky@oracle.com, david.vrabel@citrix.com, konrad.wilk@oracle.com, xen-devel@lists.xensource.com, lguest@lists.ozlabs.org, andriy.shevchenko@linux.intel.com, jlee@suse.com, glin@suse.com, matt@codeblueprint.co.uk, andrew.cooper3@citrix.com, rjw@rjwysocki.net, lenb@kernel.org, robert.moore@intel.com, lv.zheng@intel.com, toshi.kani@hp.com, linux-acpi@vger.kernel.org, kozerkov@parallels.com, josh@joshtriplett.org, joro@8bytes.org, tiwai@suse.de, "Luis R. Rodriguez" Subject: [PATCH v5 06/14] x86/init: use a platform legacy quirk for ebda Date: Fri, 8 Apr 2016 16:40:17 -0700 Message-Id: <1460158825-13117-7-git-send-email-mcgrof@kernel.org> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1460158825-13117-1-git-send-email-mcgrof@kernel.org> References: <1460158825-13117-1-git-send-email-mcgrof@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This replaces the paravirt_enabled() check with a proper x86 legacy platform quirk. As per 0-day, this bumps the vmlinux size using i386-tinyconfig as follows: TOTAL TEXT init.text x86_early_init_platform_quirks() +39 +35 +35 +25 That's a 4 byte total overhead, the rest is all cleared out upon init as its all __init text. v2: document 0-day vmlinux size impact Signed-off-by: Luis R. Rodriguez --- arch/x86/include/asm/x86_init.h | 3 +++ arch/x86/kernel/head.c | 2 +- arch/x86/kernel/platform-quirks.c | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index 8bb8c1a4615a..89d9d57e145d 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h @@ -145,9 +145,12 @@ struct timespec; * struct x86_legacy_features - legacy x86 features * * @rtc: this device has a CMOS real-time clock present + * @ebda_search: it's safe to search for the EBDA signature in the hardware's + * low RAM */ struct x86_legacy_features { int rtc; + int ebda_search; }; /** diff --git a/arch/x86/kernel/head.c b/arch/x86/kernel/head.c index 992f442ca155..afe65dffee80 100644 --- a/arch/x86/kernel/head.c +++ b/arch/x86/kernel/head.c @@ -38,7 +38,7 @@ void __init reserve_ebda_region(void) * that the paravirt case can handle memory setup * correctly, without our help. */ - if (paravirt_enabled()) + if (!x86_platform.legacy.ebda_search) return; /* end of low (conventional) memory */ diff --git a/arch/x86/kernel/platform-quirks.c b/arch/x86/kernel/platform-quirks.c index 021a5f973ce3..01b159781d96 100644 --- a/arch/x86/kernel/platform-quirks.c +++ b/arch/x86/kernel/platform-quirks.c @@ -7,8 +7,12 @@ void __init x86_early_init_platform_quirks(void) { x86_platform.legacy.rtc = 1; + x86_platform.legacy.ebda_search = 0; switch (boot_params.hdr.hardware_subarch) { + case X86_SUBARCH_PC: + x86_platform.legacy.ebda_search = 1; + break; case X86_SUBARCH_XEN: case X86_SUBARCH_LGUEST: case X86_SUBARCH_INTEL_MID: -- 2.7.2