From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 4D8A82D0610 for ; Thu, 9 Apr 2026 17:28:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775755681; cv=none; b=rP8yc1vtYkAPo5Q2D98OIy8GwdcaTejMOxmMMfbVEZCcRwjIxT+oWo5MBNQRoulvWiIvp4m62HY/MtR9uWdX4l6fx1Y79vcWAG90Prshez83jegZNXhtISDkYpL9YTGk/aua3Bfc0+VfNXnc57b5qq/9hlSQrkQpej3eX5esuAs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775755681; c=relaxed/simple; bh=Xj16wV6V2Sno6eWwvBPH3/NEusVgaroJmp/zJ27wEdc=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rWxhqB72Vc2qcSzqACDNkfdb1mcvqCl6Dyy6am3u43t8t2zD1ITtSJRukU0o9nBv79ZqwEYncGk61HWOoyo7QO5Q1z3TIHrFTeIsvM4mn9oJieaf62ZQD1P/FK0iI+hIZv0KoqCZdcBbBwPta+Vd4THspVcgkpq6+kgYpB7n/6M= 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=K2+UBS/q; arc=none smtp.client-ip=209.85.128.50 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="K2+UBS/q" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4852b81c73aso10973235e9.3 for ; Thu, 09 Apr 2026 10:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775755679; x=1776360479; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=budwIyBidm2S9h+Ojfca4wDAEHhJaK900JgD39+1wwQ=; b=K2+UBS/q+WKUd6E5ctRJowgArIqNhDQUyiOk2qTPCgjvoG7t+N36n/kEb1oKE5KpWI htBfTIW8uG5itiW2Z82ww11ABChY8TphdUpOlKborzhWr+KbO96koRo9A3b0WMGzfJmR nn8B9rDNu/kwfNmSFJRsAvQy+aPHgXH6ArheCWVHzBKKoduFOw6t17vn3k1XC6s/lynu +atzMtLuIhFv72QSLIRSiPlsZqJ8L0L2SMnFCE0gnPWwRdr6oiD8TiLtlrugOal93Pjd OOAwNGUHKx/ddiy2a5qje8qCwVWpG9QvV2RJx0s1skr1DPy7LIpubyQEkmzuDcUNz4bB KuBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775755679; x=1776360479; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=budwIyBidm2S9h+Ojfca4wDAEHhJaK900JgD39+1wwQ=; b=Vz2Br3SqoZQQf7fTDr+j31IsjUILXvwKNrTAIV3jkof8NzctdkdIXzIX8witWmQ/h8 LjGVCen9mnK4gP332W9oLg5jDJUk9YRi+E61DY7TMXCLwfpO59Qu/9fUGlDyKOXPcFXU cuWc6HNoPNZJdB4Xy1wcK0PIAG5SE8b01o9ZJ+KhRc1Fhy1bTtkFixG96amdww6K/SKC iINRsyXUPpW2H/LEsH9osOGT+/rtWLJ8cjK+wP6YFmA9MHP0C4+b+EQfg7X5rXRfY+j0 iV9LunVOLrfKj//tbDR+x74KqUskUOz5AIKfexgzDVtX9Rx7O9XiDrstxJooKyRvVWb5 rt/w== X-Forwarded-Encrypted: i=1; AJvYcCVZUshrOFyirTlqdqHgxmndNAHsDv2Ereb0KYxaNZyHPJUoqsVWxOeCBeaKUdorQz6ZM293C26fwEoFiA0=@vger.kernel.org X-Gm-Message-State: AOJu0YyDk/DaoABCHmRB+5MMbzQdFFRvprJy4iFM6VZtnw5gHfz4Tjez 6vhhJYaN3Y/QFEZVte7cJA3A4KQIOPpIDMCwvXeRwUIQdl6UysDuTes6 X-Gm-Gg: AeBDievK+KzT83OobFm2Y9jgPG72V8nkhqbRKskJa+w8bsj4KzwY92Zy3P+wRknfrFr o4LIZ+f7xwQa9ho2YohbeE02p6b9CafwwUocaJk4aTbtCi+OS9L2A51LR7UdpSesctDY3bwoVZD H7HKIcTkYAVvUHId4+Pby6xsVcmR5RlLxL5Zo4U6gXtUpOwOdvDfFEbYi/vfzt/2XanxRvIvTZU 71HGQ5TZFJWRQyv/wq//XL/xV7piirupuxtzShSdVJKFJ+x6w8uY5bBY3QNDitYMuaDbMUlA+4c iCIvcWx0u0yhX9V3jLGtTITcFn6QfcGrIlJ7zPeLNu1JCjqzS1hY4le8imh08VwXpjlR1BgdAh3 16zGw/bzC+gZ1xwqZL3B+4Z9DMLxMzMmk8LF7qBEUSczu/jXUTeV5ThSSIrI8U/y9UmpVqgKk6s PWFtc6DxjhwHVFnQpI+5qr0937f4c73x2rxokH/ljpZK8E4Ziu0jIRII3vBxkx4Tcn X-Received: by 2002:a05:600c:c083:b0:487:1108:48b8 with SMTP id 5b1f17b1804b1-488ccf4062fmr45114025e9.2.1775755678580; Thu, 09 Apr 2026 10:27:58 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d532ed4dsm10576585e9.4.2026.04.09.10.27.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Apr 2026 10:27:58 -0700 (PDT) Date: Thu, 9 Apr 2026 18:27:55 +0100 From: David Laight To: Joshua Crofts Cc: lars@metafoo.de, Michael.Hennerich@analog.com, jic23@kernel.org, greghk@linuxfoundation.org, dlechner@baylibre.com, nono.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: Re: [PATCH] iio: frequency: ad983x: replace do_div() with div64_ul(). Message-ID: <20260409182755.499a419c@pumpkin> In-Reply-To: <20260409131823.1289-1-joshua.crofts1@gmail.com> References: <20260409131823.1289-1-joshua.crofts1@gmail.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) 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=US-ASCII Content-Transfer-Encoding: 7bit On Thu, 9 Apr 2026 13:18:23 +0000 Joshua Crofts wrote: > Coccinelle reported the following in both ad983x drivers: > do_div() does a 64-by-32 division, please consider using > div64_ul instead. > > Fix this by replacing do_div() with div64_ul(), which > safely handles 64-bit dividends and unsigned long > divisors across all architectures. Except here you have clock frequencies. Either they fit in 32bits or they don't. So the value shouldn't be 'unsigned long', but either u32 or u64. You need to check the domain of the values, coccinelle is just looking at the types. Even with mclk being 'unsigned long' the code is fine provided the frequency is below 4.2GHz. So you are probably fixing nothing. David > > Signed-off-by: Joshua Crofts > --- > drivers/staging/iio/frequency/ad9832.c | 3 ++- > drivers/staging/iio/frequency/ad9834.c | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/frequency/ad9832.c > index b87ea1781b..61ee93263a 100644 > --- a/drivers/staging/iio/frequency/ad9832.c > +++ b/drivers/staging/iio/frequency/ad9832.c > @@ -13,6 +13,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -115,7 +116,7 @@ static unsigned long ad9832_calc_freqreg(unsigned long mclk, unsigned long fout) > { > unsigned long long freqreg = (u64)fout * > (u64)((u64)1L << AD9832_FREQ_BITS); > - do_div(freqreg, mclk); > + freqreg = div64_ul(freqreg, mclk); > return freqreg; > } > > diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c > index d339d5e8e0..83d0e1360c 100644 > --- a/drivers/staging/iio/frequency/ad9834.c > +++ b/drivers/staging/iio/frequency/ad9834.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -101,7 +102,7 @@ static unsigned int ad9834_calc_freqreg(unsigned long mclk, unsigned long fout) > { > unsigned long long freqreg = (u64)fout * (u64)BIT(AD9834_FREQ_BITS); > > - do_div(freqreg, mclk); > + freqreg = div64_ul(freqreg, mclk); > return freqreg; > } >