Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp4694379imm; Tue, 9 Oct 2018 03:55:38 -0700 (PDT) X-Google-Smtp-Source: ACcGV619keemZwt3cDael+UL7VsVSFkYtuc2ERK7tV1E3XvcyiHcWgp2iefosCdRtTEmI5jbUiF9 X-Received: by 2002:a63:8742:: with SMTP id i63-v6mr24872411pge.27.1539082538421; Tue, 09 Oct 2018 03:55:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539082538; cv=none; d=google.com; s=arc-20160816; b=NS29wl/awc5j1h4rSmwpphxYek5b8MNjZ2px/UF0qRUzHWwBn7pBWWGK5eQzv0KvLZ CGzeyB/ShyJCO99ZmSISEjcp0tbLel23H6WnOtJrUD1bNc7cVDTkyjQAsyNVlD7l1g74 Dx1HNFk9Fd3hljAz7ISZqeMkN+yAFr/WogEbSI3bkuY7CnWp9NLCTt5cFSZStYsAt84l /z7aMobIVglKpkZglrFxer1nw7VEO1oppp27gFiMoHoONT1uzgecK1tkM5vQA7wr1ncK 2CsWlVPg+lsBPXoBzjPePcfAzqHcs30FcZRAyUCCJ2/5SRp0NZXJ3ciUNL3f+PPGFAPO 6VCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=5VvnSzPRUQwKFqO0nwuEanjnam79rqg4jQfD4H4PvjU=; b=CrBfpjLcdqrixwHtglnsc3L1BMYtmglNkCeTPI9Wwwj6kWk+f3LITs6w9iyJURVjfV zd8L/6pVS3NjevD3QL0wrIBiO0Hpg5nm57A3PPaBsuK5sSPzZYFMt6G9HJlmiqEZVMMq Gkx8l9iNrvKa5xANhxd7dSFk9vUaaec0IeLPwr9O8KN86WypA/Wbn+cNEgxM1Q+wrzkZ qCaWXWFRslGDT/6p03qM+SJfh1uXPwyGM9LRrY7fNAreX1qnDIjB6O3Ugw/qyD+uPWDB Ji8Ga7jHWAtnJutiIuf9J1QPA5dxgcypsyoeADdrB8dFrwpirTduIpQLDgK/gxO0Bapy crtg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n13-v6si17175830pgb.482.2018.10.09.03.55.24; Tue, 09 Oct 2018 03:55:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726843AbeJISLE (ORCPT + 99 others); Tue, 9 Oct 2018 14:11:04 -0400 Received: from mx2.suse.de ([195.135.220.15]:44080 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726740AbeJISLE (ORCPT ); Tue, 9 Oct 2018 14:11:04 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 7AF98AEBC; Tue, 9 Oct 2018 10:54:41 +0000 (UTC) From: Juergen Gross To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org, linux-doc@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, corbet@lwn.net, boris.ostrovsky@oracle.com, Juergen Gross Subject: [PATCH v4 3/3] x86/acpi: take rsdp address for boot params if available Date: Tue, 9 Oct 2018 12:54:37 +0200 Message-Id: <20181009105437.5471-4-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20181009105437.5471-1-jgross@suse.com> References: <20181009105437.5471-1-jgross@suse.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In case the rsdp address in struct boot_params is specified don't try to find the table by searching, but take the address directly as set by the boot loader. Signed-off-by: Juergen Gross --- V3: use a generic retrieval function with a __weak annotated default function (Ingo Molnar) V4: check boot params version before using acpi_rsdp_addr use x86_init structure instead of __weak --- arch/x86/include/asm/acpi.h | 2 ++ arch/x86/kernel/acpi/boot.c | 6 ++++++ arch/x86/kernel/x86_init.c | 3 +-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index a303d7b7d763..e9057ebff76c 100644 --- a/arch/x86/include/asm/acpi.h +++ b/arch/x86/include/asm/acpi.h @@ -142,6 +142,8 @@ static inline u64 acpi_arch_get_root_pointer(void) void acpi_generic_reduced_hw_init(void); +u64 x86_default_get_root_pointer(void); + #else /* !CONFIG_ACPI */ #define acpi_lapic 0 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 3b20607d581b..e8fea7ffa306 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "sleep.h" /* To include x86_acpi_suspend_lowlevel */ static int __initdata acpi_force = 0; @@ -1771,3 +1772,8 @@ void __init arch_reserve_mem_area(acpi_physical_address addr, size_t size) e820__range_add(addr, size, E820_TYPE_ACPI); e820__update_table_print(); } + +u64 x86_default_get_root_pointer(void) +{ + return boot_params.hdr.acpi_rsdp_addr; +} diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c index 2792b5573818..50a2b492fdd6 100644 --- a/arch/x86/kernel/x86_init.c +++ b/arch/x86/kernel/x86_init.c @@ -31,7 +31,6 @@ static int __init iommu_init_noop(void) { return 0; } static void iommu_shutdown_noop(void) { } static bool __init bool_x86_init_noop(void) { return false; } static void x86_op_int_noop(int cpu) { } -static u64 u64_x86_init_noop(void) { return 0; } /* * The platform setup functions are preset with the default functions @@ -96,7 +95,7 @@ struct x86_init_ops x86_init __initdata = { }, .acpi = { - .get_root_pointer = u64_x86_init_noop, + .get_root_pointer = x86_default_get_root_pointer, .reduced_hw_early_init = acpi_generic_reduced_hw_init, }, }; -- 2.16.4