]> git.baikalelectronics.ru Git - kernel.git/commit
i2c: ensure timely release of driver-allocated resources
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 22 Mar 2021 01:38:32 +0000 (18:38 -0700)
committerWolfram Sang <wsa@kernel.org>
Sat, 10 Apr 2021 19:59:21 +0000 (21:59 +0200)
commitd35ae8dfab22d39a599db85efc0ec4f2ad4c1437
treecc4e7b918d2eacf131398d59037c74649c873fd0
parentc9e1ceb2950d3f9bf7562c3580e74905724a2254
i2c: ensure timely release of driver-allocated resources

More and more drivers rely on devres to manage their resources, however
if bus' probe() and release() methods are not trivial and control some
of resources as well (for example enable or disable clocks, or attach
device to a power domain), we need to make sure that driver-allocated
resources are released immediately after driver's remove() method
returns, and not postponed until driver core gets around to releasing
resources. To fix that we open a new devres group before calling
driver's probe() and explicitly release it when we return from driver's
remove().

Tested-by: Jeff LaBundy <jeff@labundy.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/i2c-core-base.c
include/linux/i2c.h