1 From f93beb4279d3c08c704fbeddde1ec39ecaa7bc08 Mon Sep 17 00:00:00 2001
2 From: Kangjie Lu <kjlu@umn.edu>
3 Date: Mon, 1 Apr 2019 17:46:58 +0200
4 Subject: video: imsttfb: fix potential NULL pointer dereferences
6 [ Upstream commit 1d84353d205a953e2381044953b7fa31c8c9702d ]
8 In case ioremap fails, the fix releases resources and returns
9 -ENOMEM to avoid NULL pointer dereferences.
11 Signed-off-by: Kangjie Lu <kjlu@umn.edu>
12 Cc: Aditya Pakki <pakki001@umn.edu>
13 Cc: Finn Thain <fthain@telegraphics.com.au>
14 Cc: Rob Herring <robh@kernel.org>
15 Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16 [b.zolnierkie: minor patch summary fixup]
17 Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
18 Signed-off-by: Sasha Levin <sashal@kernel.org>
20 drivers/video/fbdev/imsttfb.c | 5 +++++
21 1 file changed, 5 insertions(+)
23 diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
24 index 9b167f7ef6c6..4994a540f680 100644
25 --- a/drivers/video/fbdev/imsttfb.c
26 +++ b/drivers/video/fbdev/imsttfb.c
27 @@ -1517,6 +1517,11 @@ static int imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
28 info->fix.smem_start = addr;
29 info->screen_base = (__u8 *)ioremap(addr, par->ramdac == IBM ?
31 + if (!info->screen_base) {
32 + release_mem_region(addr, size);
33 + framebuffer_release(info);
36 info->fix.mmio_start = addr + 0x800000;
37 par->dc_regs = ioremap(addr + 0x800000, 0x1000);
38 par->cmap_regs_phys = addr + 0x840000;