Re: [PATCH] watchdog: allow WATCHDOG_PRETIMEOUT_GOV_SEL=y

From: Guenter Roeck

Date: Sun Oct 18 2026 - 12:48:55 EST


On 10/17/26 15:27, Dmitry Voytik wrote:
On Sat, Oct 17, 2026 at 11:42 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

On 10/17/26 08:59, Dmitry Voytik wrote:
Hi Guenter,

Thanks for reviewing the patch!

On Fri, Oct 16, 2026 at 8:21 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

On 10/4/26 14:37, Dmitry Voytik wrote:
Fix the issue when WATCHDOG_PRETIMEOUT_GOV_SEL can't be set to =y,
and always is =m.

The issues can be reproduced with the following steps:
make mrproper
make defconfig
./scripts/config \
-e WATCHDOG_CORE \
-e WATCHDOG_PRETIMEOUT_GOV \
-e WATCHDOG_PRETIMEOUT_GOV_SEL \
--refresh
make olddefconfig
make mod2yesconfig

grep '=m$' .config
returns only CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL as module:
CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m

"make menuconfig" doesn't let it to be switched from =m to =y either.


This does not explain what the problem actually is that is supposed
to be solved with this patch. Since this is just a selector used to
enable other configurations, and the configuration option does not
result in any packages built, "WATCHDOG_PRETIMEOUT_GOV_SEL can't be
set to =y" on its own is not a problem.

The issue is that
make mod2yesconfig
doesn't work as expected. Help says "Change answers from mod to yes if
possible".

This does say "If possible".

I might have misunderstood it, but I thought all configs should be =y
for this make target.


$ make allmodconfig
$ make mod2yesconfig
$ grep =m .config | wc -l
51

Not really.

Maybe a dumb question, but why does only this config have " default m"
and others use
"default WATCHDOG_CORE"? Does it have some special meaning with "default m"?


Again, this configuration option is only used to set the (default) value
for the watchdog pretimeout governor, and the "=m" states that the default
should be WATCHDOG_PRETIMEOUT_GOV_PANIC=m, not =WATCHDOG_CORE.

This doesn't explain why it's =m by default.

I want to have no modules and still not disable the module load
ability, and it annoys me
that some configs don't allow "=y" :-) otherwise when I do
grep '=m$' .config
I need to remember that CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL is a special case.

FYI, for Arch Linux based config, only
CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL pops up with =m.
A fix for the same issue with CONFIG_TDX_HOST_SERVICES seems to be accepted:
https://lore.kernel.org/lkml/as04AoNxjzlvh-K8@thinkstation/
You are comparing apples with oranges. That commit states:

Fix the issue when the driver always gets compiled as a module.

There is no module that can or will be compiled based on
WATCHDOG_PRETIMEOUT_GOV_SEL.

Sure, I understand that. What is the semantic meaning of making it by
default =m? And why can't I make it =y?
I understand the build artifacts are the same, but I'm curious why =m?
Why WATCHDOG_PRETIMEOUT_GOV_PANIC is not =m by default?
Thanks for the explanation in advance!


The idea is to build WATCHDOG_PRETIMEOUT_GOV_PANIC as module
by default. There is no "why" to answer. Why build anything as module
by default ? Are you going to question all those 478 default=m
configurations in the kernel ?

You still do not explain what actual problem you are trying to fix,
except that WATCHDOG_PRETIMEOUT_GOV_SEL can't be set to =y, which is
not a problem. The only problem I can see is that you don't like it,
which is not a reason for making any changes.

Guenter