[PATCH] drm/vkms: Fix plane duplicate_state

Daniel Vetter daniel.vetter at ffwll.ch
Wed Nov 28 10:10:33 UTC 2018


We need to handle allocation failures and bail out. While at it, tune
the allocation failures down to debug level.

syzbot injected an allocation failure and then hit this WARN_ON.

Reported-by: syzbot+eb6e5365f23c02517dda at syzkaller.appspotmail.com
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Cc: Haneen Mohammed <hamohammed.sa at gmail.com>
Cc: Sean Paul <seanpaul at chromium.org>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Cc: Rodrigo Siqueira <rodrigosiqueiramelo at gmail.com>
Cc: Gustavo Padovan <gustavo.padovan at collabora.com>
---
 drivers/gpu/drm/vkms/vkms_plane.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index 7041007396ae..e3bcea4b4891 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -23,8 +23,11 @@ vkms_plane_duplicate_state(struct drm_plane *plane)
 		return NULL;
 
 	crc_data = kzalloc(sizeof(*crc_data), GFP_KERNEL);
-	if (WARN_ON(!crc_data))
-		DRM_INFO("Couldn't allocate crc_data");
+	if (!crc_data) {
+		DRM_DEBUG_KMS("Couldn't allocate crc_data\n");
+		kfree(vkms_state);
+		return NULL;
+	}
 
 	vkms_state->crc_data = crc_data;
 
-- 
2.19.1



More information about the dri-devel mailing list