From nobody Wed Dec 17 00:14:31 2025 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 6AC4732AAA1 for ; Wed, 10 Dec 2025 19:43:07 +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=1765395788; cv=none; b=hg49CSkjpCVBPJQ+XWNPmDlttYFnWMrTMs/bSqMafssIcvMP9UhJJHqsDpShzNBScuh5+skwrPxLvqx7hWxdOkEnWzlpMcN6c+xB30IJPHYP6H0khqThSdb9vGVIl9/vlxbR0iRgtflUUYP8/5n5uVW/IoMrQSeMW1+iJztUuVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765395788; c=relaxed/simple; bh=DcbmKAWOVk4DBQnJAwa8CKdQ1Yq3s2UIfNjf/wSOuus=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OTBFcV9rPr2R9Gc82zT7vkU47olVDyKDfkNfE3wGHJYAI1Sr3JoTxytkw1r3XC8WUlZcpe8xz09tT/Wz7C6SeJowTaoDpJkMdMODJsL6YCgwixSVGCovyHqiZ8Wp2+T8c8MklJFT9TZSHml5uc0NYEYt0BoyobQkTsamcwTQvuc= 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=Dw7RkObN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XMxYjVbz; 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="Dw7RkObN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XMxYjVbz" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BAIR00f2821127 for ; Wed, 10 Dec 2025 19:43:06 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= ucvlwZxhUO3+pYRWRBKqgclemaPm9AbJrEzW63oPi/0=; b=Dw7RkObNqH0/JArg Z/G0xdd2MGP8Z+gzWqBxf51kS0nY0viSOr+MbPd9eZyKAe/S2rZPHFLJnZYtbC5Y 96Cj+zHDK6p0EtBtSGPYNTteP81YQSCQG4nQZcuTWEekGMkHBcFIZe8DBUFJzCDf 0MP7Al5ID5YYexklfnJ2AmcIf7jLD+xUXlRZ9FUlOo7SfXAfvWmGPL6OTUCZ85PJ AYgso6wRsfBgSt0w5gF9shnTHrMYbOGhJDXThEb+Sjy4/0g6FkEVoyaMbWrfrpvC lUQTV2n000avc4jmvxZbVsjh2kr+d+PQk6jx7Fgmbg1V96ny3cQpdZYsBcjeyhaq GSJ4Yg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4aydea0etj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 10 Dec 2025 19:43:06 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4ee0488e746so4267901cf.0 for ; Wed, 10 Dec 2025 11:43:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765395785; x=1766000585; 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=ucvlwZxhUO3+pYRWRBKqgclemaPm9AbJrEzW63oPi/0=; b=XMxYjVbzZGeKt1wEXNQlGa+JQuvUwf+DQYbAIfLCngOBxeHBSti1TAFTf7d5M2ZExP 30D5WIDH8TTquD4JAE46gAPJWyxSk+yhfWOPzfSjDktKo6FP9U3K/cyU3Du6NMmojakL GVCb+xDoLIlhHk3Z8t9L0szH/8VMnd+Tp3X6jRrfK84CY1qY6eynPetKSdshjwfXziT5 TCuxxkeBlbrACMdkRA3/yY4vjGrwGRZYTV2xzNILBVX2xg36RlGgQOjqdHNPX/b9i22Q 9XZvc16B/JGNnGBwnJRqdER7kTbmSy1LHJIuXPvxjGgQNOFc6360Uj/Kz6GMpo4SvZ6A yj8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765395785; x=1766000585; 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=ucvlwZxhUO3+pYRWRBKqgclemaPm9AbJrEzW63oPi/0=; b=bgSaGywSRdHwgHeTSCz7bu0viaLnXIUIPqXBt/HCEBFpnavx3v1PgVhYO7XtaiY+aG +qTzyrsbbwM1s1NCp1L/a2QI/ARLEmVgpsOIOgeFO9ZZLBNURJp0Blwqp9jRzEd2SYo1 BO6GJsrfBt5eNfxo4v0j5qeBI9JgTq24xUEQP4Nd8pqF3Sw097N03dE/X65GC9l9KoWv oYmv4GI0kY4vFameBWFit4Ni1AcCrmXtU4FYxyJPq+6l/Sl4+Q99c0mSqGom9fgk38Go fxvjwO0LyLV3odUw1wqliv9Ee8wsvgcrYvLk1OBbTmChTyUAagZQ7+HhJYlrwpC+sl+X tlxw== X-Forwarded-Encrypted: i=1; AJvYcCU/qFHleeutZDL2QXB8BbWXVrzJD11hJYGlO+5lJWTji3K/tyAs3USpaV7mc/CItsAMnHZpXxnaHS/PU+8=@vger.kernel.org X-Gm-Message-State: AOJu0YwOBkFvzrJuU5FwcVEmmhJdPmrvpSVSJ723ypj9dC31E5mBgP2N 4+rsfGyvuWMbWxqU202J++yO5jzQ2SHWn/nytt/kVwdYl/WEOrb6errU9Nel+lC8o0pYGxcOd6j YIS83ShT10+Z3MyjhMYR83IpDD9r3bnJAlpqE3U82LJtU2HBah6vsgIyCwzLAJYQi/4k= X-Gm-Gg: ASbGncunIFyREguaTXbDjb+0Bk91d+owRvOpObogQmJYmk8+qXW8859eDtscev3VDgQ nQk9Ods1MicRUfSCxqD0HHhB1hQqNn+Q72ulHdG2OxO65zLr50YyLE5s9DUezw19/InyiZBLpWF 3RV2F3T33326r8jmDgPcrOCM0S+HUxGDhuybECgCaPEHV8QSLteUeLK8UbvLOwbA8tT3L2IUAzK UJ79DPDrx11uAKgczcIUqvnyXAKUJRohLnV1OOB3GkemBWb1pbbvu5PDwEii+y8Lqu6bRgTcPVY vfzB6pOiGAkj2ijcsKYrHVG8gMjQyNM2M4vLltQBh8WIFaFXCKH5VBLhvaUhNn1ZprYirGVhHkD xKko4vz9xLuM5WOuBYVTXEY/tzzhTiam1UWVLHq/ZaUnCoz437+3GWG2UO7jNSJQqzo5Kv7j80j vWQZp1qTHaAdyIfZSwe+3KSos= X-Received: by 2002:a05:622a:10f:b0:4e8:916f:9716 with SMTP id d75a77b69052e-4f1bbdb9ca6mr10009801cf.36.1765395785455; Wed, 10 Dec 2025 11:43:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IGTGVZDJO7OhmU9jVRqnXNBJECkkrpq7sqjcnTZrOyIk7WxcjjzjnM4z7PCglHDaysmLPP26A== X-Received: by 2002:a05:622a:10f:b0:4e8:916f:9716 with SMTP id d75a77b69052e-4f1bbdb9ca6mr10009541cf.36.1765395785026; Wed, 10 Dec 2025 11:43:05 -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 2adb3069b0e04-598f3199e93sm104845e87.96.2025.12.10.11.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Dec 2025 11:43:04 -0800 (PST) From: Dmitry Baryshkov Date: Wed, 10 Dec 2025 21:42:59 +0200 Subject: [PATCH RESEND 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: <20251210-drm-fix-lut-checks-v1-3-10ae38519f43@oss.qualcomm.com> References: <20251210-drm-fix-lut-checks-v1-0-10ae38519f43@oss.qualcomm.com> In-Reply-To: <20251210-drm-fix-lut-checks-v1-0-10ae38519f43@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=2033; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=DcbmKAWOVk4DBQnJAwa8CKdQ1Yq3s2UIfNjf/wSOuus=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpOc1CNBQVt5lVuntwMtvsG9k/gNh7wXlfIuESB sIMSN+2yj2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaTnNQgAKCRCLPIo+Aiko 1di+CAChX+sjkc6W9zAEjAlx5O3DSDT0vvEM/vEgYbtgD/Dms0BzFm6SWNX1DU6BMRju6vqsYHa JQP56xB4W9XhjdjrpX3SrCN0O4ECzuB1+1NVoUaCdjUIk9ZNwrIAGQBcePAyFyq0Rve3BNFAnWd WdnwCXcC2W1AWBVt8jtUqXSCxizsf6gcnVtwqs6a11rDP5pZGHB/cKzTmnL3gOGZK6TDxbjNipT IGYHa5UtHcnuaTUM2nI4bhE32SiQ9iJUvh6nkYpCQfyT4+FNm235+CqQjLUGqTJAn137h4+h0uc NPGL42BqOOgUh471X0NcvJC8tkC51mjyZXVPF9bkD7Ng747p X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: ka914NdmEdk9zRFYjVBdPUPofhTQeVUv X-Authority-Analysis: v=2.4 cv=ZO/aWH7b c=1 sm=1 tr=0 ts=6939cd4a cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=bAolQom50hykzV7YMrMA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjEwMDE2MSBTYWx0ZWRfX1Qlyj31tzprB eyfhHFMdmSthFRqO4SD4gEx5HAFVmxqpvpTJMqDa52XMSTcT3P8zVUWqgZ1abzijugeVTB9K9YV epvrglV4SeZ9pCooES4OtO+7VUNwJxYzVbEtKlQavkFeJZ/oxyZ7Ryog2VnZWwEP6tr5Zh3vUjx Z1oxYt2V06h81ttwQs4P+B90fqhG4FdtqF9qp9s7DmRXH2CPa1sXUbPVd2y6HI24sNAT3VmHJHU bI24orsOVU7XIN2BGPIZvbVOgwbg0DKt7erSkyuetdMK8DfeW6LHe4dV3LfiU6hIepYIBizvQpE Cn58xG5FyT0e6iCdEIcwdAp/vaAajjXAQWcLAFocAHqq5ylreiNIcFrx4mi75pMw8CtSDlnMkIZ VMH5vyJfaXjQMnA9ltJq+2rLQVjLCw== X-Proofpoint-GUID: ka914NdmEdk9zRFYjVBdPUPofhTQeVUv 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-10_02,2025-12-09_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512100161 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 7d2076f1006e..178d983b2378 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