Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5553448pxb; Mon, 14 Feb 2022 01:43:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJw3G4QpW1SV8p91pZffi81isRGAuZJtrHM6tjj6P2uNact2C/BM34fkY+85jyD2GK74oTSN X-Received: by 2002:a05:6a00:1253:: with SMTP id u19mr13556139pfi.8.1644831793254; Mon, 14 Feb 2022 01:43:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644831793; cv=none; d=google.com; s=arc-20160816; b=wP7SGIIrIq8Ztdkrc1IxjXE+PWdCglSXnqBXCQZgifDCOBCeGNzjAIAeKaPrvBRi45 1FUHGm5ayWhZqwHRiyUcSqtmboPHi54OwmfWwY54s/6bX82myxBA2fcrCFIRvSymaS1M xrYlLs/e44CJ6GzXNZXB82nG9gw6T1kYutv6UIqBv6nhj6RQPD6qVueS5LufWZevzRLw MB0abp4dktZy/EQKDAXy0QZ3dSszOQ5D2qj6RJ4jhQ7dgr4hgIgTlLnEgXpQEHzEX7Tg pBlHJLIsZfblKVAgMiSaG96NxXdz2JtEoXz/r6vXHdEb6j3PAgbkgExKume00JNyABuA 5Jtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=TuiC4iN1D/Uc79MbuD6cn72klKTNxJNdfokJvF3P5mc=; b=fhRfCKHD/CO+xpolg+XKIeuQVk4S/T05y4+79+YRGczqxEfAtqIPH0nWCziNusfJ2O oUWcyia9C/ck7DrEA8y32X6Q/zMu1F+ZLma9uaFMsR0S9t6Dh5v6V2WJCmkY35orZ06/ cKLKXkggpZCh9woDideKz5WEi6dbjHuGUHPX6/xkq7TZV9E7Ekg9XBtQPLLw/vfc5HL7 M/iCJIM3zAosmR3bKCrAS8tOCNEZ4OBQCl9YTY9OqClioyTcmqTRb5QCI6HNBqUCQnR3 1pYHDdO9o8lJIZs3zkQ55EsAJz+k5DABLUvbQMwE73TZDRKgJDYw5VTnLx1r8mGrQmRi Z5RQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q77si2724797pfc.250.2022.02.14.01.42.59; Mon, 14 Feb 2022 01:43:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237841AbiBMSvG (ORCPT + 99 others); Sun, 13 Feb 2022 13:51:06 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233785AbiBMSvF (ORCPT ); Sun, 13 Feb 2022 13:51:05 -0500 Received: from smtp.smtpout.orange.fr (smtp08.smtpout.orange.fr [80.12.242.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E243457B36 for ; Sun, 13 Feb 2022 10:50:58 -0800 (PST) Received: from [192.168.1.18] ([90.126.236.122]) by smtp.orange.fr with ESMTPA id JJxXndevRuvBOJJxYnOPY5; Sun, 13 Feb 2022 19:50:57 +0100 X-ME-Helo: [192.168.1.18] X-ME-Auth: YWZlNiIxYWMyZDliZWIzOTcwYTEyYzlhMmU3ZiQ1M2U2MzfzZDfyZTMxZTBkMTYyNDBjNDJlZmQ3ZQ== X-ME-Date: Sun, 13 Feb 2022 19:50:57 +0100 X-ME-IP: 90.126.236.122 Message-ID: <9e5ed543-cd45-85db-50b5-52c2afd54c55@wanadoo.fr> Date: Sun, 13 Feb 2022 19:50:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH] iio: use div64_u64() instead of do_div() Content-Language: fr To: Jonathan Cameron , Qing Wang Cc: Jyoti Bhayana , Lars-Peter Clausen , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org References: <1644395873-3937-1-git-send-email-wangqing@vivo.com> <20220213175940.1066f5a8@jic23-huawei> From: Christophe JAILLET In-Reply-To: <20220213175940.1066f5a8@jic23-huawei> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 13/02/2022 à 18:59, Jonathan Cameron a écrit : > On Wed, 9 Feb 2022 00:37:53 -0800 > Qing Wang wrote: > >> From: Wang Qing >> >> do_div() does a 64-by-32 division. >> When the divisor is u64, do_div() truncates it to 32 bits, this means it >> can test non-zero and be truncated to zero for division. >> >> fix do_div.cocci warning: >> do_div() does a 64-by-32 division, please consider using div64_u64 instead. >> >> Signed-off-by: Wang Qing > These look correct to me. Jyoti, please could give these a sanity check? > This is wrong. See [1]. CJ [1]: https://lore.kernel.org/linux-kernel/20211117112559.jix3hmx7uwqmuryg@pengutronix.de/ > Thanks, > > Jonathan > >> --- >> drivers/iio/common/scmi_sensors/scmi_iio.c | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/iio/common/scmi_sensors/scmi_iio.c b/drivers/iio/common/scmi_sensors/scmi_iio.c >> index d538bf3..d6df5da >> --- a/drivers/iio/common/scmi_sensors/scmi_iio.c >> +++ b/drivers/iio/common/scmi_sensors/scmi_iio.c >> @@ -160,7 +160,7 @@ static int scmi_iio_set_odr_val(struct iio_dev *iio_dev, int val, int val2) >> mult = scnprintf(buf, sizeof(buf), "%llu", sf) - 1; >> >> sec = int_pow(10, mult) * UHZ_PER_HZ; >> - do_div(sec, uHz); >> + div64_u64(sec, uHz); >> if (sec == 0) { >> dev_err(&iio_dev->dev, >> "Trying to set invalid sensor update value for sensor %s", >> @@ -237,10 +237,10 @@ static void convert_ns_to_freq(u64 interval_ns, u64 *hz, u64 *uhz) >> u64 rem, freq; >> >> freq = NSEC_PER_SEC; >> - rem = do_div(freq, interval_ns); >> + rem = div64_u64(freq, interval_ns); >> *hz = freq; >> *uhz = rem * 1000000UL; >> - do_div(*uhz, interval_ns); >> + div64_u64(*uhz, interval_ns); >> } >> >> static int scmi_iio_get_odr_val(struct iio_dev *iio_dev, int *val, int *val2) >> @@ -266,7 +266,7 @@ static int scmi_iio_get_odr_val(struct iio_dev *iio_dev, int *val, int *val2) >> mult = SCMI_SENS_CFG_GET_UPDATE_EXP(sensor_config); >> if (mult < 0) { >> sensor_interval_mult = int_pow(10, abs(mult)); >> - do_div(sensor_update_interval, sensor_interval_mult); >> + div64_u64(sensor_update_interval, sensor_interval_mult); >> } else { >> sensor_interval_mult = int_pow(10, mult); >> sensor_update_interval = >> @@ -500,7 +500,7 @@ static u64 scmi_iio_convert_interval_to_ns(u32 val) >> mult = SCMI_SENS_INTVL_GET_EXP(val); >> if (mult < 0) { >> sensor_interval_mult = int_pow(10, abs(mult)); >> - do_div(sensor_update_interval, sensor_interval_mult); >> + div64_u64(sensor_update_interval, sensor_interval_mult); >> } else { >> sensor_interval_mult = int_pow(10, mult); >> sensor_update_interval = > >