]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.14/video-clps711x-fb-release-disp-device-node-in-probe.patch
autosel patches for 4.14
[thirdparty/kernel/stable-queue.git] / queue-4.14 / video-clps711x-fb-release-disp-device-node-in-probe.patch
1 From 17355a855011e70cdda40188eb26f3022d89f5e0 Mon Sep 17 00:00:00 2001
2 From: Alexey Khoroshilov <khoroshilov@ispras.ru>
3 Date: Thu, 20 Dec 2018 19:13:07 +0100
4 Subject: video: clps711x-fb: release disp device node in probe()
5
6 [ Upstream commit fdac751355cd76e049f628afe6acb8ff4b1399f7 ]
7
8 clps711x_fb_probe() increments refcnt of disp device node by
9 of_parse_phandle() and leaves it undecremented on both
10 successful and error paths.
11
12 Found by Linux Driver Verification project (linuxtesting.org).
13
14 Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
15 Cc: Alexander Shiyan <shc_work@mail.ru>
16 Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
17 Signed-off-by: Sasha Levin <sashal@kernel.org>
18 ---
19 drivers/video/fbdev/clps711x-fb.c | 5 ++++-
20 1 file changed, 4 insertions(+), 1 deletion(-)
21
22 diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
23 index ff561073ee4e..42f909618f04 100644
24 --- a/drivers/video/fbdev/clps711x-fb.c
25 +++ b/drivers/video/fbdev/clps711x-fb.c
26 @@ -287,14 +287,17 @@ static int clps711x_fb_probe(struct platform_device *pdev)
27 }
28
29 ret = of_get_fb_videomode(disp, &cfb->mode, OF_USE_NATIVE_MODE);
30 - if (ret)
31 + if (ret) {
32 + of_node_put(disp);
33 goto out_fb_release;
34 + }
35
36 of_property_read_u32(disp, "ac-prescale", &cfb->ac_prescale);
37 cfb->cmap_invert = of_property_read_bool(disp, "cmap-invert");
38
39 ret = of_property_read_u32(disp, "bits-per-pixel",
40 &info->var.bits_per_pixel);
41 + of_node_put(disp);
42 if (ret)
43 goto out_fb_release;
44
45 --
46 2.19.1
47