| From foo@baz Sun Jun 17 12:07:34 CEST 2018 |
| From: Tomi Valkeinen <tomi.valkeinen@ti.com> |
| Date: Thu, 29 Mar 2018 13:40:37 +0300 |
| Subject: drm/omap: fix possible NULL ref issue in tiler_reserve_2d |
| |
| From: Tomi Valkeinen <tomi.valkeinen@ti.com> |
| |
| [ Upstream commit 6a0f0c55619f0b82a677cab72e77c3444a5eee58 ] |
| |
| tiler_reserve_2d allocates memory but does not check if it got the |
| memory. Add the check and return ENOMEM on failure. |
| |
| Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20180329104038.29154-2-tomi.valkeinen@ti.com |
| Reviewed-by: Emil Velikov <emil.velikov@collabora.com> |
| Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
| Signed-off-by: Sean Paul <seanpaul@chromium.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c |
| +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c |
| @@ -401,12 +401,16 @@ int tiler_unpin(struct tiler_block *bloc |
| struct tiler_block *tiler_reserve_2d(enum tiler_fmt fmt, uint16_t w, |
| uint16_t h, uint16_t align) |
| { |
| - struct tiler_block *block = kzalloc(sizeof(*block), GFP_KERNEL); |
| + struct tiler_block *block; |
| u32 min_align = 128; |
| int ret; |
| unsigned long flags; |
| u32 slot_bytes; |
| |
| + block = kzalloc(sizeof(*block), GFP_KERNEL); |
| + if (!block) |
| + return ERR_PTR(-ENOMEM); |
| + |
| BUG_ON(!validfmt(fmt)); |
| |
| /* convert width/height to slots */ |