]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.16.4/mmc-core-prevent-bus-reference-leak-in-mmc_blk_init.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 4.16.4 / mmc-core-prevent-bus-reference-leak-in-mmc_blk_init.patch
1 From d0a0852b9f81cf5f793bf2eae7336ed40a1a1815 Mon Sep 17 00:00:00 2001
2 From: Alexander Kappner <agk@godking.net>
3 Date: Wed, 28 Mar 2018 15:18:31 -0700
4 Subject: mmc: core: Prevent bus reference leak in mmc_blk_init()
5
6 From: Alexander Kappner <agk@godking.net>
7
8 commit d0a0852b9f81cf5f793bf2eae7336ed40a1a1815 upstream.
9
10 Upon module load, mmc_block allocates a bus with bus_registeri() in
11 mmc_blk_init(). This reference never gets freed during module unload, which
12 leads to subsequent re-insertions of the module fails and a WARN() splat is
13 triggered.
14
15 Fix the bug by dropping the reference for the bus in mmc_blk_exit().
16
17 Signed-off-by: Alexander Kappner <agk@godking.net>
18 Fixes: 97548575bef3 ("mmc: block: Convert RPMB to a character device")
19 Cc: <stable@vger.kernel.org>
20 Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
21 Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
22 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23
24 ---
25 drivers/mmc/core/block.c | 1 +
26 1 file changed, 1 insertion(+)
27
28 --- a/drivers/mmc/core/block.c
29 +++ b/drivers/mmc/core/block.c
30 @@ -3087,6 +3087,7 @@ static void __exit mmc_blk_exit(void)
31 mmc_unregister_driver(&mmc_driver);
32 unregister_blkdev(MMC_BLOCK_MAJOR, "mmc");
33 unregister_chrdev_region(mmc_rpmb_devt, MAX_DEVICES);
34 + bus_unregister(&mmc_rpmb_bus_type);
35 }
36
37 module_init(mmc_blk_init);