]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set()
authorBart Van Assche <bvanassche@acm.org>
Fri, 7 Feb 2025 16:25:27 +0000 (11:25 -0500)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 12 Feb 2025 07:44:29 +0000 (09:44 +0200)
Instead of attempting the same mutex twice, lock and unlock it.

This bug has been detected by the Clang thread-safety analyzer.

Cc: Sean Anderson <sean.anderson@linux.dev>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Fixes: 28edaacb821c ("drm: zynqmp_dp: Add debugfs interface for compliance testing")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Sean Anderson <sean.anderson@linux.dev>
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250207162528.1651426-2-sean.anderson@linux.dev
drivers/gpu/drm/xlnx/zynqmp_dp.c

index 979f6d3239ba69ce0dbf6d55447b423875612fee..189a08cdc73c05564f14e0ea41fc999562be192d 100644 (file)
@@ -2295,7 +2295,7 @@ static int zynqmp_dp_ignore_hpd_set(void *data, u64 val)
 
        mutex_lock(&dp->lock);
        dp->ignore_hpd = val;
-       mutex_lock(&dp->lock);
+       mutex_unlock(&dp->lock);
        return 0;
 }