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: [email protected]
Signed-off-by: Daniel Vetter <[email protected]>
Cc: Haneen Mohammed <[email protected]>
Cc: Sean Paul <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Rodrigo Siqueira <[email protected]>
Cc: Gustavo Padovan <[email protected]>
---
 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

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to