From nobody Mon Feb 9 18:44:25 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 9F11120E6E2 for ; Sun, 28 Dec 2025 03:24:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766892260; cv=none; b=GG2a2qfVb6PwdOpZlBKh0AMbAOtpZhXaOhlOAs4SjIsS9himmY2vx9UBg4wqBNUZbM+4ZpYJxreSfV7MpkFnzNtwH1HxPSSGTyMhdOBw7OBjb/xJ4nAi2l8UtjyJmumYsQtMPXmSqgtxK3cejGVYrn6r4KA3GPaPqHfGO90tTdc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766892260; c=relaxed/simple; bh=MShYdDKdFUHcrHqdYR2kRbGAF0dVfrFIaZJcWDlIW7g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sdbz38iEFBQesbzL7+lrP02jQW5R1PmleGfssgo1gWtooA4eYPALrgZLzc94jWURaGVFo9C7ouJJtQn3mUWleNq/t20HWJrxuib9Djl3XIAjuoXuH00+jvjPZLfx0g4MqONYGzz1qIEkVMqeC5cJtS7kbXI30GO3pN96qbhPPBg= 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=k4UPUn6v; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QOxPl99T; arc=none smtp.client-ip=205.220.168.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="k4UPUn6v"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QOxPl99T" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BS1b9FV1563672 for ; Sun, 28 Dec 2025 03:24:17 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= 3dHmK4Z0mEQYvLqijWN5ssYQ9ShWJJdkoUufTuuHqek=; b=k4UPUn6vP9bcXK1f rcaBMSgGNPCbld4EE5oJ23m4QoB8mb8LRWVjzK4q1vCegA/YAre4Zl5fY1RJUrJB /QAHePqkVrXSfLHt1CTCzZaHhfzVLuXMnQJmnVU5T466J54c/ULibA/mXau7uxUn V72OIEMHiwpTucSCdfdJUEy0JRmmzw6QEP/UBjYcwMQnyX8xcJFj/cHCh3nhw0e7 FnmNWFZIedaoHs9lWcAJjTYKlS+vHH1W7IytwF0dgWyoQm6PXF6btMafZNbyAe8W rH4QXyeAZ/3OIbZYk2terhg9y04u/ajFblp16GAuOyhY+lGVKAW9PDWzKGGiwdUi fMSUag== 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 4ba87bsjhf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 28 Dec 2025 03:24:17 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-88a3822c06bso235646736d6.2 for ; Sat, 27 Dec 2025 19:24:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1766892256; x=1767497056; 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=3dHmK4Z0mEQYvLqijWN5ssYQ9ShWJJdkoUufTuuHqek=; b=QOxPl99T4om8s2GKighC6dwhL1IcQF6hMBcnzAWv3AHk2vkuF5H0xMftphrTaT2U+s 1DeEp1KjTQ/wCaCUfSO4w6B6dxi43uFSPiYT5lzoijT/CeRW+GJ0AM8BybzQ7/K0Q8dt UPNfmYuPICRgQEaTKsIxUimv5EsL5K1H7hsihrh5KGWJDHyekB9wYAJnWo11WlhDpZio wPLBIp3zI4fv9w6yIxpqW74/4NMmCDJFV7Wc7fuHY9hJEYIzHfDDhF5kKtEDBRX8QIww y+C5m7mOaXqWn6sofI7WR39Uk6QajZW37fF7hpKAP8wMYgJmlMsaewtWNMZGnTMZos2d Y/fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766892256; x=1767497056; 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=3dHmK4Z0mEQYvLqijWN5ssYQ9ShWJJdkoUufTuuHqek=; b=S2dkFjAvM2F7bzE98typFIHV0fpGEQJfiwYsTVYpuz4BFgXOIK95zmsuapk1PlKEEn HBuDGNHCLQT/NKLxtEYCrFKgqp7FS0BdgEMOH4BrpRpkthS/mqySYUYJojBham0KLPSC 4xQvUa6eD0C78WR8NdH3n6xjUNybbhG/OOvT6tS1//PRjZX9t+4RDIsD1fUdinPV/act hXeoTQItS9tpjCxApYvwFGGcNR8ancUDId/Mv1Z/2UHniQ2p7z5hoYe4HwW0U56mnidj OxJt10OuJ2PPb7pfPHYn1PWnbpph1aIU5hjkP4+ASzBRSmo4jW041jrFen1+xbps/pws jZxA== X-Forwarded-Encrypted: i=1; AJvYcCWNZb14yA3mCPV28ZHLJtEj6/mog9hg0PZWoPRvdZPuBHKUTefNTIPAZd9GfxgU4NyED5UPDIxRe4xYuqk=@vger.kernel.org X-Gm-Message-State: AOJu0Yzgi+BfdL9iji2ctZmGM6lHSWkQcAHVUNS81DqQKNkRVflnaJsM yDnfk80nkR7TgWfLCM3iarKYE+zDIJU0bhOnP5biZ8gHDpMiH4lMupk6G0gDFHyqSkLYS+mYRDT WrcVTMaKy+acFa0IqPTSax/FydiRKDRX0d+pQaY7Afji3EbGX2hE0/ETTM+EhiH4CqqQ= X-Gm-Gg: AY/fxX6Fw+DSiKYyXfNP8ocAnCsOHWoEsZiJMCZu4SPMRqpLUrtpn1lTu68alqm9o77 p4RG3HJ9fdGKpOA/6dR7nZhaMvzoQBLCgY6NZKwIb+HDXxW86XfgTqxwkc6kwCV6knCwvsXVsLr NLYzjhy7dcdMedAk7IRXdVZad9c4DSJ1HG3cjD9tJIBISoaWxWtpfENDl6+2fxGKiOQTeeu/e0p p3WHD5wvirfuJyMaLfzH+bMXpaCrPwNFJZHJXYZsJ2SDl5KuQm68IxIc2mOxLWiirVwhO+vl8/X 4a+bv7IDwyhMqrvxKcb82Ymc1jRCaiRZq3ZJQiVTNvIHiLrjCM8c3G80Cr9B+hUMkfqUkcuYvPe ZlaGDIdZh6WV2AvUd+VBmgbV4eqZNifVvpkjyPmI5kvcIj/f2AN6fSWjNWJKEbkb8clojrMeRbV GurMpIJSZbTTRtu3LJNJv9sv8= X-Received: by 2002:a05:622a:909:b0:4ee:1875:42fa with SMTP id d75a77b69052e-4f4abcd09f4mr411834051cf.1.1766892256459; Sat, 27 Dec 2025 19:24:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IH7rnFmsC4exAxvQSHpB1xuuZUBoYW9vqYfhHAhmTqGWdfrHTe27lOp4ru7Isb9AMlvq7RjTg== X-Received: by 2002:a05:622a:909:b0:4ee:1875:42fa with SMTP id d75a77b69052e-4f4abcd09f4mr411833851cf.1.1766892256029; Sat, 27 Dec 2025 19:24:16 -0800 (PST) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3812262b36dsm72149561fa.30.2025.12.27.19.24.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Dec 2025 19:24:14 -0800 (PST) From: Dmitry Baryshkov Date: Sun, 28 Dec 2025 05:24:07 +0200 Subject: [PATCH v2 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: <20251228-drm-fix-lut-checks-v2-3-50f5d1a260a7@oss.qualcomm.com> References: <20251228-drm-fix-lut-checks-v2-0-50f5d1a260a7@oss.qualcomm.com> In-Reply-To: <20251228-drm-fix-lut-checks-v2-0-50f5d1a260a7@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.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2119; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=MShYdDKdFUHcrHqdYR2kRbGAF0dVfrFIaZJcWDlIW7g=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpUKLWgTT7o1EDCbJr87OcCnHW+Vd1tXrMXtG8i AXrXELA0PWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaVCi1gAKCRCLPIo+Aiko 1fCHB/49Xr2ORljZCm1hynreogxCv1NqbFHUtI1Iw14YGFMA1Z9EXjf1SXSZlHQ8Sag/qifTS+X avKm3KjwjQGIhqZ+8UGs4RiS3x2hg6lrDzqqOnX9RfH1i0YYvw7WKMyopKqw9b/y7EKQjg9JI2w ToNRi9PgLT6R0RbpDg/0jeSBtcKTD0L9f2/c3qs7yEwWyAOubY4ue9HR5drfOkvSaWUygIEvl15 0Pt0MTj1iJHefu8vS41zFO1I741K456L5hxZhLzcn/fSDbB79eye6ji/QI4a2OwyZeugDnYjSxG 4xbbM431/e2jm0juvpdiipkpq/AlbY85tqyumRP32Egepcyy X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: eRTAWax6NfGj5XJ8RdmrToUbr0m8cvk2 X-Proofpoint-GUID: eRTAWax6NfGj5XJ8RdmrToUbr0m8cvk2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI4MDAyOCBTYWx0ZWRfXzc4/NPXfNvcF c7o02cGbihvyR7sGg1LLHaCRijh5SaRC3fMEOTHm958Ud4LqRby3IT67QK9INBpKJ1p+ewX+Fc5 f5gElu5ncCG/IEn8OJX0PRz+D1jWLnKkdBMayHBQPjgRIKMMIkAeJ0P1G1KrBfMEzU4Rti+P17c hjLDQdFT4PyBgGtWsQbcRjVRcsXHf302AlX06UalQ92uia4v/vdC2InMo+B2chdfaUKesWOQqhW zo5c6MlbcElxS6qyaSTLGHnaMUenmHhkprV2r6L4sQGCmKYkUf7/7iKVypV5Y4rAWVVCTb+0OEb V4K9N8U9S4uLdvHjrcVApYgGaWq+74c/tcmsdx0llt5s9a+UMoO3fkdbhLRpo8xEMknzhHJHlCi 3gIURsrq1JX9TGfJjkQcA8fv7OOGQj9JDFaGS9S7UpvbwnDNIi73XxHR4cCy8gCveiLZbYS3EMX 8xeJDHBvOHJye1Q4q6Q== X-Authority-Analysis: v=2.4 cv=do7Wylg4 c=1 sm=1 tr=0 ts=6950a2e1 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=ZkoTrUv0hqWFqrPu6skA: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-12-28_01,2025-12-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512280028 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 | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic= _uapi.c index dff1fdefcbeb..8489823a9773 100644 --- a/drivers/gpu/drm/drm_atomic_uapi.c +++ b/drivers/gpu/drm/drm_atomic_uapi.c @@ -413,10 +413,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) { + const elem_size =3D sizeof(struct drm_color_lut); + 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, -1, sizeof(struct drm_color_lut), + elem_size * lut_size, -1, elem_size, &replaced); state->color_mgmt_changed |=3D replaced; return ret; @@ -429,10 +438,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) { + const elem_size =3D sizeof(struct drm_color_lut); + 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, -1, sizeof(struct drm_color_lut), + elem_size * lut_size, -1, elem_size, &replaced); state->color_mgmt_changed |=3D replaced; return ret; --=20 2.47.3