Re: [PATCH net v2] net: fec: add a check for CONFIG_PM to avoid clock count mis-match

From: David Miller
Date: Tue Nov 12 2019 - 14:13:22 EST


From: Chuhong Yuan <hslester96@xxxxxxxxx>
Date: Tue, 12 Nov 2019 19:28:30 +0800

> If CONFIG_PM is enabled, runtime pm will work and call runtime_suspend
> automatically to disable clks.
> Therefore, remove only needs to disable clks when CONFIG_PM is disabled.
> Add this check to avoid clock count mis-match caused by double-disable.
>
> Fixes: c43eab3eddb4 ("net: fec: add missed clk_disable_unprepare in remove")
> Signed-off-by: Chuhong Yuan <hslester96@xxxxxxxxx>

I don't understand this at all.

The clk disables here match the unconditional clk enables in the probe
function.

And that is how this is supposed to work, probe enables match remove
disables. And suspend disables match resume enables.

Why isn't the probe enable taking the correct count, which the remove
function must match with an appropriate disable? There is no CONFIG_PM
guarding the probe time clk enables.