From nobody Tue Feb 10 02:44:02 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 DF60823EABF for ; Tue, 6 Jan 2026 03:10:07 +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=1767669009; cv=none; b=JovRa6LPgF1uMex2VyA5l2f2xE/oCGg/hYC73/sWswPPRDwhhr/ljOEls8a+2p/AtjK5q8iJLqwSOWV4lhZKsiuPRjue/j97ovQ76Ml1lDNo4aByt5gAiJQiysQ2vMAAxkI0aOlOaFL9Gft7eK6bH/4/SC8xVwsD1xEf62CZiVo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767669009; c=relaxed/simple; bh=CQUkj+reftSe9Iid1OhLuxp7qZp+MAIvsJPwVl+a6RY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pKXiI6U4s3tCmBybfru6C0ytHORBtSLgZlhGGDD6AyMOMtK/WGRv4ZZDSzD3yOxBPknoIUqg7oV4xfkyaW6qgIKHeBROjvk/YPY7mdvKpDpGn/Q1beivt4QXkBzbbh2FvZ5JfFvmRUIevzrDmGeD4VxkRsC+tn2T7xAZhg/6bcg= 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=lwUUksny; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Jebe/dW9; 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="lwUUksny"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Jebe/dW9" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6060o6Uh2888454 for ; Tue, 6 Jan 2026 03:10: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= Kxx8tCQDWmw4x8+Q9ke5IQIT8BfxOOcptitDY8TgftM=; b=lwUUksnycBGhL7QM V7gx5qNFpCeiw+Cna0vJBDJK68qs4bZ8FgpYN2vvSxqr48Jwi+fn9yBdAVrBFEoE O4aFpKBK3flnHCxiJ0GH1BqkaubH7c9a53awgHWdIsahx+IbK6TiDNGpLW1c7w+8 Vy5/6B2aI2NqKSXUgvuEjgHTgRPfq36QkxCf7iJAZ4ERtP45bL9OFhLOqe7hrRnC JYzb+tUQU3J0HFSseBUBFsjKwk3NA0jJ5gHeR0AmHiVqpcTHnjWnEeyv7w/P25be XNXQbV3jNWWB/vJ6/gKGB7LnJofobF3QDBJpIqUYDyLqvtQG8Kc9dinFdY4k2GUc mOsoFA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bgpnd8h5x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 06 Jan 2026 03:10:06 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ee416413a8so6730261cf.1 for ; Mon, 05 Jan 2026 19:10:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767669006; x=1768273806; 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=Kxx8tCQDWmw4x8+Q9ke5IQIT8BfxOOcptitDY8TgftM=; b=Jebe/dW9G3SyLX2nkhoIu4XS0obsaG09ncTGrbCYOQqXCW5Ti60E7SdUM/aEVLPNJt qOgXLlbU0sK1Qft006ecFXQLc82ZXervABl3Crd8jATSl1CUSL0uRdAUo+NmevI4Uz5G unhIH2DCICUGttSkpu39s+edjbGVVy4f0qhNQRs3jA7q4cpkR1uvKDtqghPFR4AC6PQY 64bC+q4o+Qu1jQRGB3jdAL4x8NGxv/yp+mid+IH88jYXAKrzWLWUMcoHOW0TMOb7o/an gVR16swSxC6iPBeRzXqOLwbkabc6oP72mpN8j0hYs91HFxxg0ZvuAuo1I8lRJDRbsekK FeYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767669006; x=1768273806; 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=Kxx8tCQDWmw4x8+Q9ke5IQIT8BfxOOcptitDY8TgftM=; b=Hbp6JqKChlnUr7wsZiQY3uc/+/IAp3VuP2KaDnhOueVbB06x99Oct7Yp0zH9oT+wT2 H4W5xLoViMTBl3e3MVZy+tLsOhWEMHg+kPZw2x19Ek4Sb14xB26QsgAdLjByrBanfZTR 3UFV5hfMs0IOOSbf2OXFlIN+ksJGIOMVosFpkU0Sd68Mt43Vev1T7h3VDcsCOLW6f3Ah GbTnlKJTU1Xmfq2ILAf2WpuYx8Y4I3IHqwdUn9ps25WpLq2PYc2EeMQ0TUhRAlGzJuHE RI7jc5o3ePtF0wN/+KnQJkCYxWEc49hqhigUVr6/BTQxqKAWdD1XXwQzpzk0H0Qb0+vZ UHMg== X-Forwarded-Encrypted: i=1; AJvYcCVxKKnveEMBvu9CncKx2uIYwlj8qgoNCQSneSJf1q4vaPRjWgsi+wvXnq8J+0y2YKDStvmHrVp0ZgojoD0=@vger.kernel.org X-Gm-Message-State: AOJu0YymWQJfCNmkVzmvJkeO4k3YXaDhltEx4/cZLcoyPf2XSdpFRM5m AE1lVesApfbURpVuJGqt5i9+WCzQN0IvD71pPLM44SvqYV7zDI3gkChuka6LRWAklJN4tVi0QoR k9biaEkxGxuf2fDzXdbvp+cGiFDpU/L3YiFPhg+WtIsiraoAoonYmOuxDhALz9K+H1iI= X-Gm-Gg: AY/fxX6Fg28MaOlE2lZjsF+HYRFT6J4lGht8jvTcCC3QiuLUz4ZVDwGCxQJiHp12fiR /J1ysKZ4GjLARMXFMtL0cQC90EZ6ZM0L6+LIyRkBDy27BZivwMduHhXV+rgrKgLou5fBGVKXhQj o6M3vHZtivsyMpIIfvUcTzLa0fRt06meW0mdbsntANaT1cDNSP6XiPKD0oa+m51bPvBhVALFHvD CLaPwt9pBZMR2EALicS/ouk/PejmOZrwZBja5QDmZHx2P0F7XPIFuSZT7AkY/wYEFKr9IIYV9bg FI55Spa12BZXa1QULuy1RfljAZS2zg+61tunKamxbIkrd3WHbHnaOnfpWNeImuV2tLdgp53j86N mDnzAumPVcxK0IkV7mbOygJe+8efABL4FV2fMAcBnX5o611wcnfes+LHx/PKU2X51S0+5MJV016 S7Au7YHaaZJsxXSgGObtLUHYg= X-Received: by 2002:ac8:5a49:0:b0:4ee:1903:367b with SMTP id d75a77b69052e-4ffa76a1174mr27538921cf.5.1767669005977; Mon, 05 Jan 2026 19:10:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IEUYnowTv6MsozrIb8LDtbiyw94oAdi29kas9IpHmTtL4k6cthbrQfc1CLNz0JLTyR/dDvm0A== X-Received: by 2002:ac8:5a49:0:b0:4ee:1903:367b with SMTP id d75a77b69052e-4ffa76a1174mr27538641cf.5.1767669005516; Mon, 05 Jan 2026 19:10: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-59b65d0d22csm242869e87.37.2026.01.05.19.10.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 19:10:04 -0800 (PST) From: Dmitry Baryshkov Date: Tue, 06 Jan 2026 05:09:57 +0200 Subject: [PATCH v3 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: <20260106-drm-fix-lut-checks-v3-3-f7f979eb73c8@oss.qualcomm.com> References: <20260106-drm-fix-lut-checks-v3-0-f7f979eb73c8@oss.qualcomm.com> In-Reply-To: <20260106-drm-fix-lut-checks-v3-0-f7f979eb73c8@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=2133; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=CQUkj+reftSe9Iid1OhLuxp7qZp+MAIvsJPwVl+a6RY=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpXH0EwOmRyu9Cnxu6D/YykRTPVffVqbMsthR9k 9TD4SOlAxWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaVx9BAAKCRCLPIo+Aiko 1V/0B/9FfTKkq3SbmSHXtswAti0IbUrsa8ReI/ywGQd5c497iNP8yFMbfaCFlF1iHUVlyYY2o6+ uA33c0tVXM/epG/henHRiaSdzoHTVkmhbIQ1if8GnDD4Wbo/t9P6Vn67MPf/e7POjuXlpMw4IkV 6yO3M2fYtLv8dL9fQLg1Mj3LUyqYqaUPgoYVAu6TfcOapTs+Gl+eySbYzVYqX8ab5/NOtHn9YLF /DLHinUl/NmfbfDQ2voVT/EvGt7mrelzzYvYAYHNJbR8o8x9namlclukOvEg5oTqElL+h7xUN4j WA9Gh7hoQ2qV8iEkYsCUzBKczr0ifWgWpniuQ5iAxYG7Q/XZ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: 4TOlFVFv7hqcZ9Sy3phEn-fUm6acQtnE X-Proofpoint-GUID: 4TOlFVFv7hqcZ9Sy3phEn-fUm6acQtnE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDAyNSBTYWx0ZWRfX4jAOC30hAWAI +MiwQ+9vDbn0i06GkcRnP+/L5WmgkiGnxchcpUvbSmjXGg10pZ3eAV+a75eKH4hC1QWSM1NwqKv ec+L/fNI9LcqSSZR0JWWvOaxYvyMSB2cmUcHZUMLqLijEq2fjiuEGRPBtd5nUWuwZvfjLt01xk9 vDRzsCLcNg3smUtkYHOddDUD4gjq/NaaX2TLEfIs9DyPI7qgDD1cc+CpRTeXXavbi5sb+i/89Mf T4Mr6hwdVtdkRm6nLtRLG87aZMBTBZaH1YKcbmo17rZ5/s+jzSM7Eb2LH84FfOfDSStk7+5Thko 5k/lQPwURCfgBXepg/ZMGI7HpnTE2ZJMFR7AbJi2pE9ZAqXTBG0AHHPshqH2m1tGpFc7TVcVrca dKdZ4TcwgmqtA017gjtMj2B0i+ZkyltDjmC0eZPhv6QMY2kLngtSc9o9WpnDyivG97ngOrl2bW8 +b5gfIXu0z8KToBCGGQ== X-Authority-Analysis: v=2.4 cv=Jpz8bc4C c=1 sm=1 tr=0 ts=695c7d0e cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=ZkoTrUv0hqWFqrPu6skA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG: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=2026-01-05_02,2026-01-05_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 clxscore=1015 adultscore=0 phishscore=0 suspectscore=0 impostorscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060025 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 Reviewed-by: Thomas Zimmermann --- 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..dc013a22bf26 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 size_t 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 size_t 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