From nobody Sun Dec 14 18:05:00 2025 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47A6F1E2307 for ; Wed, 29 Oct 2025 17:39:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761759557; cv=none; b=Hsym06W7wfKjrqqLgInGNw3zvIDwrd5n0DHOMb1X/45zCJsk+f60xYECAtwvMj4nkzyg9oGE3+iCMrpFZHWfUxifyVK4iGtrdb7noOFZf7jwr4qgFf6wDVNYO91wwoHixyq4fFy9mnGVlKD2FUyyK4vawy3dGJPxv2LjPFSZr44= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761759557; c=relaxed/simple; bh=zXxfYSuarlcdX7wkRJ5fQQu9ihnL5EPvoYU9sZehLCY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CJTbjPD7JcpdOmDcP+emq3Vy8zW62qaIje39IupSGfsaMpQnrPBKIeiIgpMiFiCRe+xAMBqaRCQqWuV74ReKRsoKBVbBCcxb/k6tuH5SZ1HVg93ZBXRXHsds+v+AX2jiYQV5yTJGsQJofF5eXSMbdMSNENT6zmJKwl8PQOCk4GU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=a1nHV+r5; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="a1nHV+r5" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4770c34ca8eso839715e9.0 for ; Wed, 29 Oct 2025 10:39:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761759553; x=1762364353; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wd2SwmO3s42C6B+THDT/QkC+mSXRUeoaYVSZH4hdUjs=; b=a1nHV+r5qz4RTbf/O01Jw6p8+5TYzTrwuKHlLNctPnb/hG1tj3IWKLUDbYTdZR/wCM v66BntoxuNYXK9aGbs9Wq7QOF+bSBqTpE8U8SM/eck9gVCjyRp06vF+aWeWxggWgAmcO nwG+2cFV1lgTn/PlAgByDVpnIt0EdrPLKmYSK4eeCkv7l2vypOhsWL8ZSsH6/Q8uHOJJ VF9lgnMue+jvgP87hQp6sKMmI9FpBIY4IoV4Zbzn2xz3Ct7J5GSsPwGH25jW2F5NkTrn BcYe2OUNGstM4Jw0VF1JAMD/VRDDXN0eRYcvqdObR0u2qelFzxuaohFnl4nAaRUN9y3S LMiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761759553; x=1762364353; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wd2SwmO3s42C6B+THDT/QkC+mSXRUeoaYVSZH4hdUjs=; b=Giq90LjP7IKHR35AJYR1/q4JfRWEFIy9lpmBKpzbfN7MhEW3NKtF98NPKMPBaI8kCM IbGRLMmAD/AVJ7HW1TLxhYwgf0aQYBmg8Tf4hl8dufDPMiHOFyLTAhIHSjuWZCUcm1Sf w6Xoz4NFkWy3YPWvJkld8U36dmq9Qq0djaTSqZBuJ1YvZb8erVCY1ipwYhZLEyLM+07+ 7tygibn9WMPcQ6rsEBkjaA9MGxWNXfQuAUX3MJKqnB+cQSyehHgNSVFy/ppCehgYr5UF SDz4SzRJIsHPZWeSvGiOq7HJFtfoiiX8qMOgObDiFse8NgkKSzoYlDJ+7xGAmz9eF6pQ VzVQ== X-Forwarded-Encrypted: i=1; AJvYcCVPdgVWVxH+fR85HXi0/VXPFCRSUjRyC1lznXK51hdphNtLD03dDGoHczGTH4AMpFLAGF4SFGUHbnw+jPg=@vger.kernel.org X-Gm-Message-State: AOJu0YwWscOU7cbHRJtxf6paPIEN+XpgxvXSCyvVRdioMrd0/Xbr3zcj NwWaoPp4IRP09tF0Fkf8DrfwDE/+CgRcW1YvPOP41evfg0vOOsNJIcPc X-Gm-Gg: ASbGncuuRRBUaDA+POAsPS6eDEZBipZdM/wzvkDDx1E9pS5olel8dANRT6AMD1KB7zD 3G8bmXyOdaZx4wO086UrEQ/sXu+2t+Axj4tyQv6L0l9/5RpyHR/DO+B+rB/gdJGcfMaCppXPgX+ k4ra4bNeopD/TPsRrGukvI/ee9j8Sa+6y0ckM6OBnMkj+emtD1XaWp0do7e/rXt9gXLww02X0vt Q1NKcYRS4DtUd12Cm06F5TzbAge0izARP6iXvLE0G1J29DYZdrYa71HkTi+gM83MDmgOX+0a9Rv 6BE/G715p4yRXt+vQixrhizv+VffYYiOXZ3wq5UyY1RbthdMd8BVXHk4zikwAEHsvgFBzxfN1mR JThD/ErdZk3wdl9rMRfiVNMHR7mnrC/JOijugM2gKOiqYaub+ZS0PV0/zkVntiDJDgRev+/RK2B xkjOiQxK1WnMcUxf1g/zzqxF8cpswnzCiHiOsQp7MUg6ZuMaVqApgZXob2+YaA X-Google-Smtp-Source: AGHT+IHhr91+Bfr8yPDxQuAt1LS8V31mfkbT0U8xn6O5zXuWwhTctTa0JaAaXvbdZwX5WjAK4Fv/Kw== X-Received: by 2002:a05:600c:3506:b0:46e:37fe:f0e6 with SMTP id 5b1f17b1804b1-4771e3b849fmr37597855e9.30.1761759553398; Wed, 29 Oct 2025 10:39:13 -0700 (PDT) Received: from snowdrop.snailnet.com (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4771e235ae1sm70646865e9.17.2025.10.29.10.39.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 10:39:13 -0700 (PDT) From: David Laight To: Andrew Morton , linux-kernel@vger.kernel.org Cc: David Laight , u.kleine-koenig@baylibre.com, Nicolas Pitre , Oleg Nesterov , Peter Zijlstra , Biju Das , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Thomas Gleixner , Li RongQing , Yu Kuai , Khazhismel Kumykov , Jens Axboe , x86@kernel.org Subject: [PATCH v4 next 1/9] lib: mul_u64_u64_div_u64() rename parameter 'c' to 'd' Date: Wed, 29 Oct 2025 17:38:20 +0000 Message-Id: <20251029173828.3682-2-david.laight.linux@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251029173828.3682-1-david.laight.linux@gmail.com> References: <20251029173828.3682-1-david.laight.linux@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Change to prototype from mul_u64_u64_div_u64(u64 a, u64 b, u64 c) to mul_u64_u64_div_u64(u64 a, u64 b, u64 d). Using 'd' for 'divisor' makes more sense. An upcoming change adds a 'c' parameter to calculate (a * b + c)/d. Signed-off-by: David Laight Reviewed-by: Nicolas Pitre --- lib/math/div64.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/math/div64.c b/lib/math/div64.c index bf77b9843175..0ebff850fd4d 100644 --- a/lib/math/div64.c +++ b/lib/math/div64.c @@ -184,10 +184,10 @@ u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *= remainder) EXPORT_SYMBOL(iter_div_u64_rem); =20 #ifndef mul_u64_u64_div_u64 -u64 mul_u64_u64_div_u64(u64 a, u64 b, u64 c) +u64 mul_u64_u64_div_u64(u64 a, u64 b, u64 d) { if (ilog2(a) + ilog2(b) <=3D 62) - return div64_u64(a * b, c); + return div64_u64(a * b, d); =20 #if defined(__SIZEOF_INT128__) =20 @@ -212,37 +212,37 @@ u64 mul_u64_u64_div_u64(u64 a, u64 b, u64 c) =20 #endif =20 - /* make sure c is not zero, trigger runtime exception otherwise */ - if (unlikely(c =3D=3D 0)) { + /* make sure d is not zero, trigger runtime exception otherwise */ + if (unlikely(d =3D=3D 0)) { unsigned long zero =3D 0; =20 OPTIMIZER_HIDE_VAR(zero); return ~0UL/zero; } =20 - int shift =3D __builtin_ctzll(c); + int shift =3D __builtin_ctzll(d); =20 /* try reducing the fraction in case the dividend becomes <=3D 64 bits */ if ((n_hi >> shift) =3D=3D 0) { u64 n =3D shift ? (n_lo >> shift) | (n_hi << (64 - shift)) : n_lo; =20 - return div64_u64(n, c >> shift); + return div64_u64(n, d >> shift); /* * The remainder value if needed would be: - * res =3D div64_u64_rem(n, c >> shift, &rem); + * res =3D div64_u64_rem(n, d >> shift, &rem); * rem =3D (rem << shift) + (n_lo - (n << shift)); */ } =20 - if (n_hi >=3D c) { + if (n_hi >=3D d) { /* overflow: result is unrepresentable in a u64 */ return -1; } =20 /* Do the full 128 by 64 bits division */ =20 - shift =3D __builtin_clzll(c); - c <<=3D shift; + shift =3D __builtin_clzll(d); + d <<=3D shift; =20 int p =3D 64 + shift; u64 res =3D 0; @@ -257,8 +257,8 @@ u64 mul_u64_u64_div_u64(u64 a, u64 b, u64 c) n_hi <<=3D shift; n_hi |=3D n_lo >> (64 - shift); n_lo <<=3D shift; - if (carry || (n_hi >=3D c)) { - n_hi -=3D c; + if (carry || (n_hi >=3D d)) { + n_hi -=3D d; res |=3D 1ULL << p; } } while (n_hi); --=20 2.39.5