Message ID | 1454358418-5157-7-git-send-email-fu.wei@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Fu, [auto build test ERROR on tip/timers/core] [also build test ERROR on v4.5-rc2 next-20160205] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/fu-wei-linaro-org/acpi-clocksource-kvm-add-GTDT-and-ARM-memory-mapped-timer-support/20160202-043111 config: arm64-allyesconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm64 All errors (new ones prefixed by >>): arch/arm64/kvm/../../../virt/kvm/arm/arch_timer.c: In function 'kvm_timer_get_ppi': >> arch/arm64/kvm/../../../virt/kvm/arm/arch_timer.c:404:2: error: implicit declaration of function 'gtdt_arch_timer_data_init' [-Werror=implicit-function-declaration] if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data)) ^ cc1: some warnings being treated as errors vim +/gtdt_arch_timer_data_init +404 arch/arm64/kvm/../../../virt/kvm/arm/arch_timer.c 398 399 *ppi = irq_of_parse_and_map(np, VIRT_PPI); 400 of_node_put(np); 401 402 skip_of: 403 #ifdef CONFIG_ACPI_GTDT > 404 if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data)) 405 *ppi = data.virt_ppi; 406 #endif 407 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On 01/02/16 20:26, fu.wei@linaro.org wrote: > From: Fu Wei <fu.wei@linaro.org> > > This patch adds ACPI/GTDT support for virt arch timer > using the API in GTDT driver. > > Signed-off-by: Fu Wei <fu.wei@linaro.org> > --- > virt/kvm/arm/arch_timer.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c > index 0a279d3..4077347 100644 > --- a/virt/kvm/arm/arch_timer.c > +++ b/virt/kvm/arm/arch_timer.c > @@ -385,6 +385,9 @@ static int kvm_timer_get_ppi(unsigned int *ppi) > { > struct device_node *np; > int ret = -EINVAL; > +#ifdef CONFIG_ACPI_GTDT > + struct arch_timer_data data; > +#endif > > np = of_find_matching_node(NULL, arch_timer_of_match); > if (!np) { > @@ -397,6 +400,11 @@ static int kvm_timer_get_ppi(unsigned int *ppi) > of_node_put(np); > > skip_of: > +#ifdef CONFIG_ACPI_GTDT > + if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data)) > + *ppi = data.virt_ppi; > +#endif > + > if (*ppi) > return 0; > > As I already pointed out in another thread hacking some KVM ACPI stuff, this is the wrong approach. We should have a *common* accessor in the timer code that exports the relevant information, whatever the firmware "du jour" is. See Julien's series, which seems to address the issue in a much more convincing way: https://lists.cs.columbia.edu/pipermail/kvmarm/2016-February/018531.html Thanks, M.
Hi Marc On 9 February 2016 at 01:10, Marc Zyngier <marc.zyngier@arm.com> wrote: > On 01/02/16 20:26, fu.wei@linaro.org wrote: >> From: Fu Wei <fu.wei@linaro.org> >> >> This patch adds ACPI/GTDT support for virt arch timer >> using the API in GTDT driver. >> >> Signed-off-by: Fu Wei <fu.wei@linaro.org> >> --- >> virt/kvm/arm/arch_timer.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c >> index 0a279d3..4077347 100644 >> --- a/virt/kvm/arm/arch_timer.c >> +++ b/virt/kvm/arm/arch_timer.c >> @@ -385,6 +385,9 @@ static int kvm_timer_get_ppi(unsigned int *ppi) >> { >> struct device_node *np; >> int ret = -EINVAL; >> +#ifdef CONFIG_ACPI_GTDT >> + struct arch_timer_data data; >> +#endif >> >> np = of_find_matching_node(NULL, arch_timer_of_match); >> if (!np) { >> @@ -397,6 +400,11 @@ static int kvm_timer_get_ppi(unsigned int *ppi) >> of_node_put(np); >> >> skip_of: >> +#ifdef CONFIG_ACPI_GTDT >> + if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data)) >> + *ppi = data.virt_ppi; >> +#endif >> + >> if (*ppi) >> return 0; >> >> > > As I already pointed out in another thread hacking some KVM ACPI stuff, > this is the wrong approach. > > We should have a *common* accessor in the timer code that exports the > relevant information, whatever the firmware "du jour" is. > > See Julien's series, which seems to address the issue in a much more > convincing way: > > https://lists.cs.columbia.edu/pipermail/kvmarm/2016-February/018531.html > Thanks for your info, I have read through Julien's patchset in mailing list. This patch is a improvement from Wei Huang's patch using my GTDT driver, because his approach is getting info from DTB or ACPI directly. But It seems Wei Huang is helping Julien on his patchset and trying to provide Tested-by, So I will delete these two patches(about kvm), and test Julien's patch also. > Thanks, > > M. > -- > Jazz is not dead. It just smells funny...
diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c index 0a279d3..4077347 100644 --- a/virt/kvm/arm/arch_timer.c +++ b/virt/kvm/arm/arch_timer.c @@ -385,6 +385,9 @@ static int kvm_timer_get_ppi(unsigned int *ppi) { struct device_node *np; int ret = -EINVAL; +#ifdef CONFIG_ACPI_GTDT + struct arch_timer_data data; +#endif np = of_find_matching_node(NULL, arch_timer_of_match); if (!np) { @@ -397,6 +400,11 @@ static int kvm_timer_get_ppi(unsigned int *ppi) of_node_put(np); skip_of: +#ifdef CONFIG_ACPI_GTDT + if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data)) + *ppi = data.virt_ppi; +#endif + if (*ppi) return 0;