]> 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)
commit46898dbbb30f04a8885f5027393ef8bfaf26150c
treecc4e7b918d2eacf131398d59037c74649c873fd0
parent6f7fba59063050620a46b9f6f3c0e7a065a30096
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