spi: Fix simplification of devm_spi_register_controller
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 12 Jul 2022 13:55:04 +0000 (21:55 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 13 Jul 2022 12:49:02 +0000 (13:49 +0100)
commit43cc5a0afe4184a7fafe1eba32b5a11bb69c9ce0
tree2b8b11523c75916c3149759489b24352b2c33c30
parentcdb0cc9379f1b4fa5ea3e0492bacf8008f3f4e5a
spi: Fix simplification of devm_spi_register_controller

This reverts commit 59ebbe40fb51 ("spi: simplify
devm_spi_register_controller").

If devm_add_action() fails in devm_add_action_or_reset(),
devm_spi_unregister() will be called, it decreases the
refcount of 'ctlr->dev' to 0, then it will cause uaf in
the drivers that calling spi_put_controller() in error path.

Fixes: 59ebbe40fb51 ("spi: simplify devm_spi_register_controller")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20220712135504.1055688-1-yangyingliang@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi.c