Re: [PATCH] cpuidle: tegra: add ARCH_SUSPEND_POSSIBLE dependency

From: Dmitry Osipenko
Date: Wed Oct 13 2021 - 18:25:21 EST


14.10.2021 00:55, Arnd Bergmann пишет:
> On Wed, Oct 13, 2021 at 10:49 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
>>> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
>>> index 2cc3c208a180..af97992eaa82 100644
>>> --- a/drivers/cpuidle/Kconfig.arm
>>> +++ b/drivers/cpuidle/Kconfig.arm
>>> @@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE
>>> config ARM_TEGRA_CPUIDLE
>>> bool "CPU Idle Driver for NVIDIA Tegra SoCs"
>>> depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
>>> + depends on ARCH_SUSPEND_POSSIBLE
>>> select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>>> select ARM_CPU_SUSPEND
>>> help
>>>
>>
>> Arnd, thank you for the patch!
>>
>> Apparently ARM_QCOM_SPM_CPUIDLE doesn't have that problem visible
>> because it selects QCOM_SPM, which depends on ARCH_QCOM, and thus
>> ARCH_QCOM should be auto-selected(?).
>
> No, that's not how it works. In fact ARM_QCOM_SPM_CPUIDLE has the
> exact same problem. I tried to check if there are other drivers affected
> by this problem before I sent my patch, but I did something wrong and
> missed this one.
>
>> I'm curious whether this needs to
>> be corrected, otherwise (ARCH_QCOM || COMPILE_TEST) doesn't make much
>> sense for that driver. And then it will need the same Kconfig fix as well.
>>
>> I assume this problem wasn't caught by regular kernel build bots because
>> they don't test randconfig, don't they?
>
> They do test randconfig builds, but only a few of them. This one is
> rather hard to hit, it probably took me 100 builds before I hit the first
> one and I haven't run into the QCOM one yet, though I did see a
> different issue for ARM_QCOM_SPM_CPUIDLE:
>
> WARNING: unmet direct dependencies detected for QCOM_SPM
> Depends on [n]: ARCH_QCOM [=n]
> Selected by [y]:
> - ARM_QCOM_SPM_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64)
> && (ARCH_QCOM [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]

This is exactly what I expected, thank you for fixing all this!