From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1763088AbdEWNIN (ORCPT ); Tue, 23 May 2017 09:08:13 -0400 Received: from foss.arm.com ([217.140.101.70]:51264 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760115AbdEWNIL (ORCPT ); Tue, 23 May 2017 09:08:11 -0400 Cc: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rafael.j.wysocki@intel.com, Sudeep Holla , catalin.marinas@arm.com, lorenzo.pieralisi@arm.com Subject: Re: [PATCH] ACPI: processor: fix LPI when built as module To: Mian Yousaf Kaukab , linux-acpi@vger.kernel.org References: <20170519092837.30991-1-yousaf.kaukab@suse.com> From: Sudeep Holla Organization: ARM Message-ID: <314aff9d-6c24-e533-ef08-c16bc0816474@arm.com> Date: Tue, 23 May 2017 14:08:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20170519092837.30991-1-yousaf.kaukab@suse.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/05/17 10:28, Mian Yousaf Kaukab wrote: > Low Power Idle(LPI) support added acpi_processor_ffh_lpi_probe() and > acpi_processor_ffh_lpi_enter() as __weak functions and arch code is > supposed to provide the actual callbacks. This breaks if > ACPI_PROCESSOR is configured as a module. > > Add CONFIG_ARCH_HAS_ACPI_LPI configuration option to fix this. > Rafael didn't like the extra Kconfig option when I first posted LPI patches. > Signed-off-by: Mian Yousaf Kaukab > --- > arch/arm64/Kconfig | 1 + > arch/arm64/kernel/cpuidle.c | 2 ++ > drivers/acpi/Kconfig | 3 +++ > drivers/acpi/processor_idle.c | 9 +++++++-- > 4 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 848a34116c67..de2f2779cdf5 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -10,6 +10,7 @@ config ARM64 > select ARCH_HAS_DEBUG_VIRTUAL > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI > + select ARCH_HAS_ACPI_LPI if ACPI > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_GCOV_PROFILE_ALL > select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA > diff --git a/arch/arm64/kernel/cpuidle.c b/arch/arm64/kernel/cpuidle.c > index fd691087dc9a..002d9cb890bd 100644 > --- a/arch/arm64/kernel/cpuidle.c > +++ b/arch/arm64/kernel/cpuidle.c > @@ -51,9 +51,11 @@ int acpi_processor_ffh_lpi_probe(unsigned int cpu) > { > return arm_cpuidle_init(cpu); > } > +EXPORT_SYMBOL(acpi_processor_ffh_lpi_probe); > > int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi) > { > return CPU_PM_CPU_IDLE_ENTER(arm_cpuidle_suspend, lpi->index); > } > +EXPORT_SYMBOL(acpi_processor_ffh_lpi_enter); Won't these 2 export suffice ? I am just curious why that won't work. Will weak function definitions be still picked when built as modules ? -- Regards, Sudeep