]> git.baikalelectronics.ru Git - kernel.git/commit
PM: runtime: Avoid device usage count underflows
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 13 Apr 2022 15:30:32 +0000 (17:30 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 13 Apr 2022 15:30:32 +0000 (17:30 +0200)
commit1c7f18a9a05338c94657c3e99d8de92336a45a66
treed097c447ca632d516bd63b8708584eaec269eb15
parent2215afd9a00d65caf6552ebb7e865baad915d892
PM: runtime: Avoid device usage count underflows

A PM-runtime device usage count underflow is potentially critical,
because it may cause a device to be suspended when it is expected to
be operational.  It is also a programming problem that would be good
to catch and warn about.

For this reason, (1) make rpm_check_suspend_allowed() return an error
when the device usage count is negative to prevent devices from being
suspended in that case, (2) introduce rpm_drop_usage_count() that will
detect device usage count underflows, warn about them and fix them up,
and (3) use it to drop the usage count in a few places instead of
atomic_dec_and_test().

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/base/power/runtime.c