diff options
author | Seung-Woo Kim <sw0312.kim@samsung.com> | 2019-10-22 10:52:24 +0900 |
---|---|---|
committer | Seung-Woo Kim <sw0312.kim@samsung.com> | 2019-10-22 10:53:12 +0900 |
commit | defa77f39f76ec487a1cca3002b7d317de1c7c9a (patch) | |
tree | aa5488bcc8ab518e681660341c4b21ad32058f54 | |
parent | dcf999faef29bcb4ad700c1dc5b86d88c7c406a9 (diff) | |
download | linux-4.9-exynos9110-defa77f39f76ec487a1cca3002b7d317de1c7c9a.tar.gz linux-4.9-exynos9110-defa77f39f76ec487a1cca3002b7d317de1c7c9a.tar.bz2 linux-4.9-exynos9110-defa77f39f76ec487a1cca3002b7d317de1c7c9a.zip |
video: fbdev: exynos: dpu9110: fix null pointer deference for recovery_cnt
There is no drvdata for specific instance of dpp when it is not
assigned from dt, and accessing it without null check causes null
pointer deference. Fix the null pointer defercens when accessing
recovery_cnt.
Change-Id: Ie57024101d461b1135f341bd1f76b55d0d77ec73
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
-rw-r--r-- | drivers/video/fbdev/exynos/dpu_9110/dpp_drv.c | 8 | ||||
-rwxr-xr-x | drivers/video/fbdev/exynos/dpu_9110/event_log.c | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/drivers/video/fbdev/exynos/dpu_9110/dpp_drv.c b/drivers/video/fbdev/exynos/dpu_9110/dpp_drv.c index 19c6bfdf7fc2..939b0624c29d 100644 --- a/drivers/video/fbdev/exynos/dpu_9110/dpp_drv.c +++ b/drivers/video/fbdev/exynos/dpu_9110/dpp_drv.c @@ -825,8 +825,12 @@ static irqreturn_t dma_irq_handler(int irq, void *priv) dpp_info("dma%d recovery start(0x%x).. [src=%s], cnt[%d %d]\n", dpp->id, irqs, val == DPP_COMP_SRC_G2D ? "G2D" : "GPU", - get_dpp_drvdata(IDMA_VGF0)->d.recovery_cnt, - get_dpp_drvdata(IDMA_VGF1)->d.recovery_cnt); + (get_dpp_drvdata(IDMA_VGF0) ? + get_dpp_drvdata(IDMA_VGF0)->d.recovery_cnt : + 0), + (get_dpp_drvdata(IDMA_VGF1) ? + get_dpp_drvdata(IDMA_VGF1)->d.recovery_cnt : + 0)); goto irq_end; } diff --git a/drivers/video/fbdev/exynos/dpu_9110/event_log.c b/drivers/video/fbdev/exynos/dpu_9110/event_log.c index ea516a60a170..f65e284bc7c0 100755 --- a/drivers/video/fbdev/exynos/dpu_9110/event_log.c +++ b/drivers/video/fbdev/exynos/dpu_9110/event_log.c @@ -903,8 +903,10 @@ static const struct file_operations decon_cmd_lp_ref_fops = { static int decon_debug_rec_show(struct seq_file *s, void *unused) { seq_printf(s, "VGF0[%u] VGF1[%u]\n", - get_dpp_drvdata(IDMA_VGF0)->d.recovery_cnt, - get_dpp_drvdata(IDMA_VGF1)->d.recovery_cnt); + (get_dpp_drvdata(IDMA_VGF0) ? + get_dpp_drvdata(IDMA_VGF0)->d.recovery_cnt : 0), + (get_dpp_drvdata(IDMA_VGF1) ? + get_dpp_drvdata(IDMA_VGF1)->d.recovery_cnt : 0)); return 0; } |