From nobody Mon Feb 9 20:59:10 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F45C2264D4 for ; Sat, 15 Nov 2025 03:43:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763178183; cv=none; b=Sp4HoOKIY5cwcvxIzvcrpcO0QzCZcWp2oaj/ZoZIta2Pyje7L99ziVBC/q3SjI6Y+/nLbosIfr1lAkZktJcufyAGb+Tkp4YtVGsfQ9s8OvRhbPpLa+mzUYWkbdhn99di4WckvgbNC5HtNCuCK+R9+v5yh9i1Uw24zjpnNOfK7n4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763178183; c=relaxed/simple; bh=4P1wMVl+cr5YuoK0uLDDF4U6r3t4wXggB06NKtuqjxQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OMqH07tsSgjXsIXm9pOnOqGEaFTmMd/E0kJGF4ANj7YsmvHcS2pEGWk9xHpETGh7eh8+rm6TyeJxexR5RgY3upP3kg0InhrPMMaswPOkglzntoMrHNCp611Gv9f+wAglWd004KXomgBSQ4Dd76mWdLWR3HV/+CBawgoUgGSkddI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=HboKQy1y; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gpzYfyXv; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="HboKQy1y"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gpzYfyXv" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AELDsFl669164 for ; Sat, 15 Nov 2025 03:43:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aamIlscdOZY2NtMNmIDW1DpTwPFXcWriH5eM+ZN8CSY=; b=HboKQy1yA7vhgXyT P1ia12JurKgStGgWb6jbJ4jftC9Uz4xPMG0FfCZ+xi8gG1lwxVQg7zReFC8weKGM erZsILtU3/ib4bpGndhO/ubNd3uU1Qwb2GqPvT+w16xjxEySW3Irj6+oJxLpP8Hx NMQQFIr6LT/xrzIMB9nWfUK40SrZNsT1DAppakH7D7Z1LtZNBLMvoMu/wXqYC7uT +2ZjxSOkQGwn2jh/EI5yllCZtC/gwyp91jUqRE6CLwQN8mzC639r/4HKIyMKgVrv BPaS0/nHk+NEa1O6o1E3f65EX+wGR/98n/DnSorOoZc3JiFm2nVUig9XxiJXGYfa 06gEWQ== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4aec5d8ngq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 15 Nov 2025 03:43:00 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-880444afa2cso39153946d6.1 for ; Fri, 14 Nov 2025 19:43:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763178180; x=1763782980; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aamIlscdOZY2NtMNmIDW1DpTwPFXcWriH5eM+ZN8CSY=; b=gpzYfyXv4yfLiI4k0S3RqSfcuS9288wcNy/vqXCNZt5miPn0t3ghIcK8vJ7qgEIv6g PHPZ6GL4ac1TP6HSWoMKR6inD3L4vrkr+SKpvGcPpM1heT1LYM/tdg63mkCZx127DHjg p32OMXEiuqQrpor5KA0V6UU/LEPX4WwEZg3XXzoeRhcl/HtcdydxJw6BWYKMb/hm7fQW uHVD0P80k/jdGpyQfYtk5uinNy+sNlknP9o2WgpawOw/JZYJwyrMRYKZ85UKbwajnJMA YAoi5SFFWzTVaWYJKw1vPLOzscKLTsmVc9TR+CwKxltxT5NiGcIzeLP/fd50JEI+QQAN 18Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763178180; x=1763782980; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=aamIlscdOZY2NtMNmIDW1DpTwPFXcWriH5eM+ZN8CSY=; b=KuDaa6jTSG6Ou6uKGmnzS9BySIcB1+CTq2+uNAvHjzSHX8rj+HZZ8HZ0YTLv4Ndxd/ lOW3gJnGVtH0qPykdJQ7m6SnLtKqfgI2t5GYIfcZsuJN0kResLi1oWkc2HcYZ7qDrFcS mxFJOnpJr3GTjXaOqPULXDyoKCtvdaI/VncQb8n74cu+vdFP5iCivsOsnsfEmwxq6Fk0 2Xb5OdDiaC0EofRtX9Ixj+p/YnQDfCDVoCFbRjFV9y03wii/ePCDopOMYbxhDWKlxIDL CxE6klNENARW56OWma/Ki+O5NjxnjTE0jAWpnC/aCQQmP/zxtAjXKsBkSrbauibxaZAB +qQQ== X-Forwarded-Encrypted: i=1; AJvYcCWPMY6yHJZ6TpDLk2I2rrVBRXv6Ypm7k25yz3oQMwMLAZY0Ega4pe0ja7qAclkAtBkhD14mW1wCO7rR5bA=@vger.kernel.org X-Gm-Message-State: AOJu0YxgUhsjfeDWSIesH82Vo80XAcSqQFHPAI9Hc2K+l/5ueDvdlyQS SPPVhebhoSYAa3CMILyjZcErkFEQzhFygFP7SuwCBhfeM8Jd4N0M8X46dB21QtfRfnSl/cCVX4B 7k84M6F7XnbhR7tbArxIpROxGpkMjEMEmVwFjZuVpNWEiad6BgU30uTqAi4UXMFSENok= X-Gm-Gg: ASbGncuwTs3mEFiJ1xsEuVcPP2j7QJvff4ZIFx7k6ixpl3223fsVNZYC6nVVyoiW2YV GcROwvJjVatglbNB9RjvyBw1RGOKJXzGPVJCZeSfnUCYs75TZomMLw8qqMf7Zz0M1kNdfyoAZv3 1F+0xRQtd1jBzivUVi168wvwKEDfdcNJGIqMyDjczWofAUnmi/ZJK3A0hI9QsE+fcb6/yTAPE0t RLhTpJNaa80pFuENKS9rtAfifboXRcNelsFHny4r9PSGggxycLuWnfegC2zRri77s97eF4cd1Nn ORaZoFrNTGtVhgAmYNUp6ayQlYzIpW8Df5JKItZ7Ln1+u7YwXdmwrhsXG+6jrISwADQW0ruupNj xGdLtXo/mxM8WiPKPU8zLuhJxmjfKsEI2xC6iHWP1bF15aThjZ4lw4YGMRQr9PW9fXN02ZLOrMx tnWqO/IwUs0VWN X-Received: by 2002:a05:6214:248e:b0:882:3453:8248 with SMTP id 6a1803df08f44-882925f67a9mr77232066d6.28.1763178180280; Fri, 14 Nov 2025 19:43:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IHhVxtE2vzDpCPxpniykwzQn02uMaRseK9nYWsrY16MxhuNwjNND/ElPUxOxZWzG5XyLWKoMQ== X-Received: by 2002:a05:6214:248e:b0:882:3453:8248 with SMTP id 6a1803df08f44-882925f67a9mr77231846d6.28.1763178179750; Fri, 14 Nov 2025 19:42:59 -0800 (PST) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5958040578fsm1475880e87.78.2025.11.14.19.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Nov 2025 19:42:55 -0800 (PST) From: Dmitry Baryshkov Date: Sat, 15 Nov 2025 05:42:51 +0200 Subject: [PATCH 3/3] drm/atomic: verify that gamma/degamma LUTs are not too big Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251115-drm-fix-lut-checks-v1-3-3586f5855bc7@oss.qualcomm.com> References: <20251115-drm-fix-lut-checks-v1-0-3586f5855bc7@oss.qualcomm.com> In-Reply-To: <20251115-drm-fix-lut-checks-v1-0-3586f5855bc7@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Harry Wentland , Leo Li , Rodrigo Siqueira , Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2089; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=4P1wMVl+cr5YuoK0uLDDF4U6r3t4wXggB06NKtuqjxQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpF/a7T5WnPS0+6Tv496xy0Hm3V4HUcepWVOh7+ VCvXzZ0ycWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaRf2uwAKCRCLPIo+Aiko 1YkmB/wPsLc6KEvkV424vpLAEbHyA6xjgnMKZ8tD9uJ/+MD6hxhPqfREqsSyl+MQ5pLR3IceAoS /kRCvgLGHirkV2I4x1xAwX+1Huqe2X8PL9InneIHyOgtV+G6Tm+sOxSeroduVzfJ/878dKw2rdh +6MQwO5CGzxmegoJ1uwt+cmQFi5ZQIRso9+YbQNSZUqw9m/54fgaZsDYyZ1CRTTNtRUkOBGBSTy jtzW9mSXfn4oeivRipQEgsOXmacKBxIU2LgE3wcFCEdbZoEd5dgrBG/MzM8Ll+XI/WbUm0+0pfd oUmsdaraNAe8qLgCznpVkSLyzHlVcKwODR9r6MfIPXGnNohi X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: JlcOwSTUGVTKvAkLp4gnGQhRR2yMshcK X-Proofpoint-GUID: JlcOwSTUGVTKvAkLp4gnGQhRR2yMshcK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAyOCBTYWx0ZWRfX2z3qzJYqgj3S 6uY4Og9Pl94TsN8auG1Gk2jOz3CaAQVX+dRw1Hop30ZRUOp+z11QUXGiVF9i1VjNA0n77E61Xe3 j06BUazJOltm6VkLlWEdfnLf7eys1b0FbWI1ZFUL3vxd2aZFeGEiRw85bE3GYYdQW5QDnPUFLQP W4kzZdqQfTiB4z8t/zRJFwf69OyeFRfAqWzDTJETpmUsnPq2ktvLVsCAg4L2GncmeJaxIuBTSkw uluxlvzh0Es7PZjJRetcC7I71thQUr2HbwOCuAW4SMk3kYVqoPVZ8RH3dwxB+oJnbVWil0L40CW oLQB5m7tFQPmuoAs2qwm61c7tOtp+GnskJ0rTeqV5i3gpGX5ibLb7Mw3oG89ehXmtAP+6v9tdiq FWQwHDL+oipEF3cxqIuTBgVbLC5pIA== X-Authority-Analysis: v=2.4 cv=KYnfcAYD c=1 sm=1 tr=0 ts=6917f6c5 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=_v5trmpiMvKuf-VRmTkA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-15_01,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 malwarescore=0 suspectscore=0 priorityscore=1501 adultscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511150028 The kernel specifies LUT table sizes in a separate property, however it doesn't enforce it as a maximum. Some drivers implement max suze check on their own in the atomic_check path. Other drivers simply ignore the issue. Perform LUT size validation in the generic place. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/drm_atomic_uapi.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic= _uapi.c index 7d2076f1006e976de73c898a838ceb4b5c4370e4..178d983b2378e1910a8afff4da2= 4e090f02f3bd4 100644 --- a/drivers/gpu/drm/drm_atomic_uapi.c +++ b/drivers/gpu/drm/drm_atomic_uapi.c @@ -384,11 +384,19 @@ static int drm_atomic_crtc_set_property(struct drm_cr= tc *crtc, } else if (property =3D=3D config->prop_vrr_enabled) { state->vrr_enabled =3D val; } else if (property =3D=3D config->degamma_lut_property) { + u64 lut_size; + + ret =3D drm_object_immutable_property_get_value(&crtc->base, + config->degamma_lut_size_property, + &lut_size); + if (ret) + return ret; + ret =3D drm_property_replace_blob_from_id(dev, &state->degamma_lut, val, -1, sizeof(struct drm_color_lut), - 0, + sizeof(struct drm_color_lut) * lut_size, &replaced); state->color_mgmt_changed |=3D replaced; return ret; @@ -401,11 +409,19 @@ static int drm_atomic_crtc_set_property(struct drm_cr= tc *crtc, state->color_mgmt_changed |=3D replaced; return ret; } else if (property =3D=3D config->gamma_lut_property) { + u64 lut_size; + + ret =3D drm_object_immutable_property_get_value(&crtc->base, + config->gamma_lut_size_property, + &lut_size); + if (ret) + return ret; + ret =3D drm_property_replace_blob_from_id(dev, &state->gamma_lut, val, -1, sizeof(struct drm_color_lut), - 0, + sizeof(struct drm_color_lut) * lut_size, &replaced); state->color_mgmt_changed |=3D replaced; return ret; --=20 2.47.3