Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp4562914rwb; Tue, 6 Sep 2022 09:10:54 -0700 (PDT) X-Google-Smtp-Source: AA6agR4UrZnm+e5XxZoplLXUzdFxxNMFe/Ube6WxwYMy/+f1667Gky78jJn9EKE49laO/2/gQC+7 X-Received: by 2002:a17:907:72d0:b0:734:b451:c8d9 with SMTP id du16-20020a17090772d000b00734b451c8d9mr39749990ejc.272.1662480653762; Tue, 06 Sep 2022 09:10:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662480653; cv=none; d=google.com; s=arc-20160816; b=hV9EHYqDiQxeF8ISGM/Zldb0ArfOpcMjoiMPYN2cWR6pn7ryzAiMefDHLVituwSIrv 6styX95Ws/TgmmMOqs+lOSCSmgaD51QaP2rq5ZH7lABJbUxftt50f8Ym3Ga5zH+hY4EP BFNXQe+ogr4onYlb5HR7TUm+minp/7xeUY/4VeDz2fp4VgWymizKVk8Zf8w2aPys7LjA TpmHLhbakFeNJY8cIJTDvZyfta9lOwK8nRqYjbu5nrxsUFoY5CM7XobrGw9tWniRqtYa e4dAgsku7s92KM5d+fFglaIZ+eEeMfEzqNoTq3ZLAEsY0LmF0BgPJayBXJxc2fAWPdeV MEcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:organization:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=wKgHpX6PsJB1r7+cvBWBB4KzB1IwR+c6kjNGZw6xRaA=; b=dY8b2QowAreh7UQD0tBxW/AS0X05N7SKqlNs7N+rLYSj4MLSC9hyDlx005wuQclp/y IyLbQtbUo8zhgbJipe+GGNXTNcER/bs4gpzBTAs4QT2nVfz0EPFBFDw5KwsQBb/ezO3S FKKGZ/JozbeaEyuqLcvQ5txXAp8z332utjGS4QSwolNlTRR1DW6WsIJgwMPH9mGbvYnI gwqU7Ulf23yL8dMOYsazZgiqpJEv7O0QV3HblmDuvOptE+lvckOxHJ4So9/Vtx6Y2D14 RN4LDKFEEOmyfcgW37pcTvjJQlYlXtoxFq4shtK553Xi9yd85vFB4EkNGiw0OKvNeUwu eeUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="cj82i0/B"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w5-20020a056402268500b0043e76d36437si10979745edd.27.2022.09.06.09.10.28; Tue, 06 Sep 2022 09:10:53 -0700 (PDT) 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; dkim=pass header.i=@intel.com header.s=Intel header.b="cj82i0/B"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238202AbiIFPwj (ORCPT + 99 others); Tue, 6 Sep 2022 11:52:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234543AbiIFPvy (ORCPT ); Tue, 6 Sep 2022 11:51:54 -0400 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01F377C1DA; Tue, 6 Sep 2022 08:08:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662476928; x=1694012928; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=itE7kZ47RvKv7aOih+1Wnx/AC33Uqv9KiENi43eLSX8=; b=cj82i0/BazHZcTncG3KsbfdsHF/IN0ujWu4ZyBcNqE3T2QTuKsSqAVNy r2O65IDkqkd2OJ5tz+feVMREnvmk7c8UD2YZmc4CvCFMkjfbGw4rdz3Dv Ei5ZileHqArv4zfsENoRGE0cQlbLsJyowd5IzMHlE2BFN5zThieOos76M F0Ht6w5q/n2kxbpZwH6ImjSJEg82MeSSXTSdeGE2O1d8sJ7rnzWv12ZYg PYbVRu9PfmE9WrzTyTAF094L+nBBe0tS4Ef8gWqSkr22T0IvSq070i7cn CL4xqH8eFUh9RkXM71Un9X7ekhvPKa04sGZ+JYc9JassoHyrru7IvrQp6 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="283594159" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="283594159" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:01:21 -0700 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="614102740" Received: from smile.fi.intel.com ([10.237.72.54]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:01:18 -0700 Received: from andy by smile.fi.intel.com with local (Exim 4.96) (envelope-from ) id 1oVZ8d-00995i-2a; Tue, 06 Sep 2022 17:01:15 +0300 Date: Tue, 6 Sep 2022 17:01:15 +0300 From: Andy Shevchenko To: "Farber, Eliav" Cc: jdelvare@suse.com, linux@roeck-us.net, robh+dt@kernel.org, p.zabel@pengutronix.de, rtanwar@maxlinear.com, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hhhawa@amazon.com, jonnyc@amazon.com Subject: Re: [PATCH v4 05/21] hwmon: (mr75203) fix voltage equation for negative source input Message-ID: References: <20220906083356.21067-1-farbere@amazon.com> <20220906083356.21067-6-farbere@amazon.com> <29fa5c01-aad0-04ff-e1a9-1510858eff7e@amazon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <29fa5c01-aad0-04ff-e1a9-1510858eff7e@amazon.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham 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 On Tue, Sep 06, 2022 at 04:27:13PM +0300, Farber, Eliav wrote: > On 9/6/2022 3:03 PM, Andy Shevchenko wrote: > > On Tue, Sep 06, 2022 at 08:33:40AM +0000, Eliav Farber wrote: ... > > > -???????????? *val = (PVT_N_CONST * n - PVT_R_CONST) >> PVT_CONV_BITS; > > > +???????????? *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / (1 << > > > PVT_CONV_BITS); > > > > Wondering if we can use BIT(PVT_CONV_BITS) for two (quite unlikely to > > happen, > > I hope) purposes: > > > > 1) Somebody copies such code where PVT_CONV_BITS analogue can be 31, > > ? which is according to C standard is UB (undefined behaviour). > > > > 2) It makes shorter the line and also drops the pattern where some > > ? dumb robot may propose a patch to basically revert the division > > ? change. > I originally tried to use BIT(PVT_CONV_BITS) but it gave a different > result. > e.g. > If n = 2720 > *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / (1 << PVT_CONV_BITS) = 0 > *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / BIT(PVT_CONV_BITS) = > 18014398509481983 > > I can try fitting it in one line, either by adding a define for > (1 << PVT_CONV_BITS) or exceeding 80 characters, but keep in mind that > in a later patch (#15) it gets even longer (and I must use more than > one line) since it is multiplied by a pre-scaler factor. Don't get me wrong, it's not about style, it's about preventing followup "fixes" of this. All the problems here due to (hidden) unsigned type(s). What you can do is to add a good comment on top of that line explaining why division instead of right shift and why BIT() may not be used (because it's unsigned). -- With Best Regards, Andy Shevchenko