• Rafael J. Wysocki's avatar
    PM: runtime: Avoid device usage count underflows · 82586a72
    Rafael J. Wysocki authored
    
    
    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: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    82586a72
runtime.c 53 KB