From mboxrd@z Thu Jan 1 00:00:00 1970 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 C9DD23A6F15 for ; Tue, 7 Apr 2026 10:05:32 +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=1775556335; cv=none; b=YaQyvlyQxFMhyrqtNyM4yDlsBqoEdRuark7PCSe7G+9n66Uy/mHepptW+8iIGC1m6nJ6/3HKideCflifslzgiPhJjSYJAvWX8ARKWW6lsn/+HnGZ1QGWdlRFap2FkacRI3u+JblTkcyAwi/LL+mhZgfA1iP07Ap7Oe6WJ3CsIhU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775556335; c=relaxed/simple; bh=CAMD+0QiMyQXi12K0SXokqn2XIteIhoZgpCcPaIwV9o=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=a2CxLv7eIgJqNJMSEMuVvsQb6CK1Zp0sTLbaOzqu6KbgOo9F3Z28DrnD96iRoYAiNHlUBk7hcwGnB0oT4ItaiH21bItDutwbUnjJCpBfBsRJ1aw2/9tB/XSfN9DOvDPJ12iEfZRQvUFA+lm5os4jDCH3NdSapDdWI/0R+VtDZKw= 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=cfHU6oNd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DBOEUZDR; 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="cfHU6oNd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DBOEUZDR" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6376ci133402379 for ; Tue, 7 Apr 2026 10:05:32 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= cR8Hb0685ORXdljSkvFkB7MYYy1d73ETqakcf1ykWI4=; b=cfHU6oNdMkAYMT80 jEnXEueTbxG7cnRBPaUkOn8Z+Df/ElwWFiNqEp7dj3KmccvXMtiTw/9D5meqylcl uUxxPIVSfeaJs73woTokn1eyATKCCRK+D0pPFlc+bLR8DL1/8iopjDnLqmvtZ7TN 6O/h5fxUchuxMUCwP8A/UdDQLxscWPAcL0oG2C1azZO21q02xangKMuwXBYOObip vNgOQLv0NaAdis1hbfzfdEXbostZlFtgbCGwER71voP9PKH3VyTCbMZrcWbHc65x 0jad6V5sXIjb68UPywacSowGJpmdb+mb3N2XhZdFrhm/b9qOcY52FfZVnd6Ji/Mt e9PaoA== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmrht6a1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 10:05:31 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-89cd0f68ed4so20021356d6.3 for ; Tue, 07 Apr 2026 03:05:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775556331; x=1776161131; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=cR8Hb0685ORXdljSkvFkB7MYYy1d73ETqakcf1ykWI4=; b=DBOEUZDRPCK/rTbVqz+iYQ8AhyhX2ZBcfsgVU3og9j9Lx8Om3JzSEYm6oWpc4rUOMt vrufMVnkZntmVmgWZ9BOyayOwyTSFsRgFmcDFzV9pm0CVehfR/ggfEjmvy14ux+rp0U8 ymf6mCN5bLCoSRV+Qaoj1Vtyz31fCLmmW6t60wT/cGQV1vLuDbYviy2MKBfGyd55Gt56 OlzLMNOTqhr8gCy7kQTwsFRI+OkRvyEolzX3XBu5J/5AB8JGZ3HDf0S5gnULb2Bm1pvf DSIn13vrAUewJGejBikB/cTG9ZvfXJPi7j6ScLui7rx4K7bfr4fSFTke9kNDFecdIdUF 3OoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775556331; x=1776161131; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cR8Hb0685ORXdljSkvFkB7MYYy1d73ETqakcf1ykWI4=; b=UBuzBAXPIUk0i+3vSZJTvsBPYXyDMW4LuLIyz4ThF0ICyEbXcf60Bpt6v3cPwgzhya +Q3eJwoOMErlkVBgR7xhaE7Hizw9yTVryqlotlKmi8xQwgAvARIteVqITRv1gnV3T2R2 NHHwdqBa4iWXof66D4MxxK4SE/g9/YLoFkDefjxBiz7mTuSqXmaFz1M13KNGJfQNZ/cg 6335AlKs5DvNsYGb4Pv/RLr2NaFQa3qlAXnzoUkBxVKfHDgICKHqAIe9WzQsQKsR6tXt ZOR9lByB3wwcccGQhsWD8QC29+VhfJ7o0p2u2dR9VXHaJM9jWtjue5PFPyEB6oRwKQXi hwcg== X-Forwarded-Encrypted: i=1; AJvYcCWyns1jfPO1YbyuQfbL0HQxu9kZPXfJMd63xkrimGX1Bga/EtTHeMr0vNAVak/8GldjXUVLyGraGq7zH7E=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+ke13ap15yOCYlnFD6lb45F97d0LloJ71j9jkSRFZpldYKkeS PIIlhpQZPgeZf+D1rHMuhecsBfdB5GIzHlBynXL/w3iJrBCr7CVC+lCpk5VXb0XRrVW/xfrL7PZ y1clsPULpNGmueAqn7agP6qHPB/O+04hRwS+hg3NmVgT6jQzY7k/pz/9SeKZKignNoyA= X-Gm-Gg: AeBDieuuB0uHsZqQh4Ky6yCR51ZqZmvHqBuif5NNdi7IgLg5bO754T98ycoqxa3LQqG bL+DPbSHRWt3grEeeMC+B5PiDcZk30LoQP3CHewO7Yig7M5u7+sXSiMwrZ6dWtIxHQmcvTzSprT c7DgSEvuyTe4T6/g//9aMpgyvwTqR8bKzFrOC0uWnlJKzcAz5L0sEUkn8RQdCgTEnacOW0VZqxu xcPKXkRieJdIxTrm8OapiSvCPA/bkqZC3Uu6kIK1L7ztq8fNfi+a4C1fSfSObGYj0fel6QRcf04 EgmUY9OO7sydG0CMO77dbSuUVfqofMn6EwZfOLIwJ+gbxOJyLPaNaW5JHBHZ4FMl7tLqKcQ60Us Tg/OHZg6EsT7cpTTyJecTG/Pg+R0tffio7eXQNehOYg0mY9l3zoTadUrk6rPtu0Co9uu2zIoYAn bKPH8= X-Received: by 2002:a05:6214:20a8:b0:89c:5473:bf47 with SMTP id 6a1803df08f44-8a704abb8d4mr199168306d6.4.1775556331218; Tue, 07 Apr 2026 03:05:31 -0700 (PDT) X-Received: by 2002:a05:6214:20a8:b0:89c:5473:bf47 with SMTP id 6a1803df08f44-8a704abb8d4mr199167886d6.4.1775556330776; Tue, 07 Apr 2026 03:05:30 -0700 (PDT) Received: from [192.168.119.254] (078088045245.garwolin.vectranet.pl. [78.88.45.245]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9c3cec6c3csm552293766b.29.2026.04.07.03.05.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Apr 2026 03:05:29 -0700 (PDT) Message-ID: <30ce5340-ecd1-4116-80e8-8a0bd54a3601@oss.qualcomm.com> Date: Tue, 7 Apr 2026 12:05:27 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 5/5] clk: qcom: clk-rcg2: fix set_duty_cycle() integer overflow in boundary checks To: Xilin Wu , Bjorn Andersson , Michael Turquette , Stephen Boyd , Dzmitry Sankouski , Taniya Das , Mike Turquette Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Stephen Boyd References: <20260406-clk-qcom-gpclk-fixes-v1-0-7a14fe64552d@radxa.com> <20260406-clk-qcom-gpclk-fixes-v1-5-7a14fe64552d@radxa.com> Content-Language: en-US From: Konrad Dybcio In-Reply-To: <20260406-clk-qcom-gpclk-fixes-v1-5-7a14fe64552d@radxa.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDA5MCBTYWx0ZWRfX5r2GsvuFRDR5 mygUvEF1yQloVzBWQZfKXzAvodfaMVivRXY6G+mkWfm2pgy1wUYDZBj1coI41u6byZo/rdrZAk5 72jVvl3PbLUcS3p1O7kCBRqiCCxDbHFgsV2i20b/6Qh5S7vJGF+0jg3gPxsglaZ8SS5Ar9Fp1Mp OIc3yXSM5nsF0gsTXFY+46ANz9iWLVgUPoWb4cwoOxelM5kqu3xfeYJAHKR16isGqOhckUhNPg0 h9kJQgJrI/lcERPsCnTnWt76MWJBYoKNee32u3jWUtu+aP4W8U5G+jhURZTHacUIJRV2XU2/XGM 2vv1sDXa7H4oUMqnXd3XqQI51y1emIeziNa6KajBj2xqC0wIsv2BQxy9paR3vsA/eTS4Zcuw5B6 PZAqMdEdxd44CT6h/L9WH7N77MQJf6oyCaCJH1QHjAVYFe0xFkpu9JNhmHoOioaw/kBI65HKNYF RhFwemEm8ryQv8LKbOQ== X-Proofpoint-GUID: aHtHnxCYbvrDApDen27sAVHvstzyZSIh X-Authority-Analysis: v=2.4 cv=XPUAjwhE c=1 sm=1 tr=0 ts=69d4d6eb cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=FpWmc02/iXfjRdCD7H54yg==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=ksxQWNrZAAAA:8 a=EUspDBNiAAAA:8 a=2qqY3NsWhw8GdsO7NmsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 a=l7WU34MJF0Z5EO9KEJC3:22 X-Proofpoint-ORIG-GUID: aHtHnxCYbvrDApDen27sAVHvstzyZSIh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_02,2026-04-07_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 adultscore=0 phishscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070090 On 4/6/26 5:54 PM, Xilin Wu wrote: > The duty cycle boundary checks in clk_rcg2_set_duty_cycle() use > integer division to compare the 2d value against hardware limits: > > if ((d / 2) > (n - m)) > d = (n - m) * 2; > else if ((d / 2) < (m / 2)) > d = m; > > When d is odd, d/2 truncates, allowing values one beyond the hardware > maximum to pass. For example with n=7680, m=1, requesting 99.995% > duty: > > d = 15359 (raw 2d value) > d / 2 = 7679 (truncated) > n - m = 7679 > 7679 > 7679 → false, check passes > > But d=15359 exceeds the hardware limit of 2*(n-m)=15358. Writing this > invalid value causes the RCG to fail its configuration update, the > CMD_UPDATE bit never clears, and the clock output stops entirely. > > The initial D value in __clk_rcg2_configure_mnd() correctly uses > direct comparison without division: > > d_val = clamp_t(u32, d_val, f->m, 2 * (f->n - f->m)); > > Align set_duty_cycle() with the same bounds by comparing directly: > > if (d > (n - m) * 2) > else if (d < m) > > Fixes: 7f891faf596e ("clk: qcom: clk-rcg2: Add support for duty-cycle for RCG") > Signed-off-by: Xilin Wu > --- Reviewed-by: Konrad Dybcio Konrad