]> git.itanic.dy.fi Git - linux-stable/commit
spi: Fix simplification of devm_spi_register_controller
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 12 Jul 2022 13:55:04 +0000 (21:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 13:14:17 +0000 (15:14 +0200)
commit3c6bd448442b6c3f6843ac70d57201a13478dd47
tree6bea6615e5d3962fef50fd84e9da463c445e6e32
parentc6079919817af4d90db81df5614ed6da017f91c5
spi: Fix simplification of devm_spi_register_controller

[ Upstream commit 43cc5a0afe4184a7fafe1eba32b5a11bb69c9ce0 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi.c