Patch "drm/gma500: Fix end of loop tests for list_for_each_entry" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/gma500: Fix end of loop tests for list_for_each_entry

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-gma500-fix-end-of-loop-tests-for-list_for_each_e.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 36440023043804935272251da7e49a3d78e6efaf
Author: Harshvardhan Jha <harshvardhan.jha@xxxxxxxxxx>
Date:   Fri Jul 9 13:09:59 2021 +0530

    drm/gma500: Fix end of loop tests for list_for_each_entry
    
    [ Upstream commit ea9a897b8affa0f7b4c90182b785dded74e434aa ]
    
    The list_for_each_entry() iterator, "connector" in this code, can never be
    NULL.  If we exit the loop without finding the correct  connector then
    "connector" points invalid memory that is an offset from the list head.
    This will eventually lead to memory corruption and presumably a kernel
    crash.
    
    Fixes: 9bd81acdb648 ("gma500: Convert Oaktrail to work with new output handling")
    Signed-off-by: Harshvardhan Jha <harshvardhan.jha@xxxxxxxxxx>
    Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210709073959.11443-1-harshvardhan.jha@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c
index 432bdcc57ac9..a1332878857b 100644
--- a/drivers/gpu/drm/gma500/oaktrail_lvds.c
+++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c
@@ -117,7 +117,7 @@ static void oaktrail_lvds_mode_set(struct drm_encoder *encoder,
 			continue;
 	}
 
-	if (!connector) {
+	if (list_entry_is_head(connector, &mode_config->connector_list, head)) {
 		DRM_ERROR("Couldn't find connector when setting mode");
 		gma_power_end(dev);
 		return;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux