Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp1276060rwl; Fri, 4 Nov 2022 11:55:15 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7ChsSz84M6NxPqrGc/45H2nKI3zmx5OVQY1H4bxMz4j0ZVYDTN5DYVTa9bKCx28B1363yq X-Received: by 2002:a63:41c5:0:b0:46e:f23a:9fa2 with SMTP id o188-20020a6341c5000000b0046ef23a9fa2mr17766086pga.77.1667588114979; Fri, 04 Nov 2022 11:55:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667588114; cv=none; d=google.com; s=arc-20160816; b=wtG7U1QfufD6wyzOg/hhW4l4mRGHachXQ5ovCJgioFDBg/ZuQgzWVwQIQhcLsVSDkm zsEpJIlo+uYKUZMnCnCTycd8O5RQGeo+ZWeEVGaYb3H9brnc1cpvlle1RoOGaNoQsfX4 NEvyxY3b4uTxdAztQkG08I+jYumQxcA3ohzQy9ucnBHhntHPeHI26Ry1tzWMSaco8BH4 BYXPK9CcK7Z8pYI7EUTUiXjmlYG1taW717FnP1/qtZuL0W9xCxSWnnNjuwZKzhG17f/5 MeG//8r+5Pg1SRQokOWeehVZBvVQxRNp0g35/IR8HYkfYtPQ5fCfuPuaBWZVkDtzVSRN pyEQ== 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:dkim-signature; bh=D7vZbtWN4TJpeUP01QHtRPe6BwCu9t56UDEKfIgoRew=; b=r0CthzNI3ibBDpOKCusEPC9vBY/hGWRrzKqSHOlvNAD5q1KVrED+Mr4OL2X9PjpGEE 2pRxKhTc5MLC7kdiwX4mveIVITTNg/jQPwjBdQrd6nO/7k1waIvC+Klb/5c1Xfd5MhI2 kNyD+LNypx5qRNVBhQWRKNiPpbhgKQlR+P4No5RxpzsfkT5Q/p/l+SzIGr1gjqjyDpNy TYLgvum1LViJhoxvgwvJSHjkk5H+r7jZiVKIkWV3fCbFMCsLwD7Vcn5XqkkNExKUfRUa o4kKO4fBIO95/tBQClAhYaknQcRMBAHHZ2fnd+kmaKKaf9Fm3GWZHZj8h16mHRDPwuO9 RNNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="bkgBCvb/"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m18-20020a170902e41200b00186aee00facsi176041ple.518.2022.11.04.11.55.02; Fri, 04 Nov 2022 11:55:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-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=@gmail.com header.s=20210112 header.b="bkgBCvb/"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232132AbiKDSjH (ORCPT + 67 others); Fri, 4 Nov 2022 14:39:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232119AbiKDSjF (ORCPT ); Fri, 4 Nov 2022 14:39:05 -0400 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBA8310FFC; Fri, 4 Nov 2022 11:39:02 -0700 (PDT) Received: by mail-ed1-x531.google.com with SMTP id r14so8893448edc.7; Fri, 04 Nov 2022 11:39:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=D7vZbtWN4TJpeUP01QHtRPe6BwCu9t56UDEKfIgoRew=; b=bkgBCvb/LgaAtdLclS9aH+Hw2vEiCnfLRSyNfKpGZM8A4NxTH+TP9DV+fFElh7Q9nr JcYEUUziu8n8s9YOd6npPKrPymLv0HLva+vXts0VjEaeTTJ4iXELOW+53BI6OT2/Grc3 bO7NXj8WTkTF7DhIkzSx8We3JKAiG6J6ONVuW9wN/qIYmTIAWOT0ciVxDXAPBH4rerue nDt0yhN9SgQtwIVRAMletqmcsjgRPAzOlUB+5I2CANCD/lVWzraU1k+IkRNlnkFoF+Eh U8HUcPTc3nFR35JT0bz7viPws5KACNfy2rG4bc8MADdQ79H82uBqdwLPNUDmLfSQ0DZw QlQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=D7vZbtWN4TJpeUP01QHtRPe6BwCu9t56UDEKfIgoRew=; b=NmJ/2eG5z5NkGzMLt+0WqGwNsIWVTTyw3WYtQAyE6XVH4mdk9qZqrlgqBVIo/EbcOR Vw+PgDfsXj1ClDxrOJA3+Z5RouScQThQtMCiG82k8S+vYKyTcfA8dkDCAWfcTtF3+qp9 w4rPZ+ZnJDRHC+Bhw7q9zn/64aZAszotzCKPs3vxtfkJR+i6wiBTfBaW+49BCjpgJ4vv 8LT/9gIHRVqKsidwS5HMvOs0z0Rpku7X7n7reDUyqHMwhNOR4uh0wflTuWp9wAjLYEFB OrhiDVyAsCeXjfqdHGHFDwp+ZD2QvrrPFB9cjTDZwGzcyD5fdPjQnhGS35S7VUYXc6LG IDXg== X-Gm-Message-State: ACrzQf3qxL4wW0kVUYh6flVjMvRBIk7XwYt+AaivRujTDg28V6GRwOSx qi0CmkrjGO04beKcg+RICK61SL5TvqA= X-Received: by 2002:a05:6402:5024:b0:440:e4ad:f7b6 with SMTP id p36-20020a056402502400b00440e4adf7b6mr9319798eda.358.1667587141474; Fri, 04 Nov 2022 11:39:01 -0700 (PDT) Received: from [192.168.1.101] (p54a07888.dip0.t-ipconnect.de. [84.160.120.136]) by smtp.gmail.com with ESMTPSA id hw20-20020a170907a0d400b007ade5cc6e7asm2175915ejc.39.2022.11.04.11.39.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Nov 2022 11:39:01 -0700 (PDT) Message-ID: <0bd7b528-761f-6a93-ff97-5aa419b4f336@gmail.com> Date: Fri, 4 Nov 2022 19:38:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2] staging: rtl8192e: Fix divide fault when calculating beacon age Content-Language: en-US To: Larry Finger , gregkh@linuxfoundation.org Cc: phil@philpotter.co.uk, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org, Randy Dunlap References: <20221104012750.2076-1-Larry.Finger@lwfinger.net> From: Philipp Hortmann In-Reply-To: <20221104012750.2076-1-Larry.Finger@lwfinger.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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-wireless@vger.kernel.org On 11/4/22 02:27, Larry Finger wrote: > When the configuration parameter CONFIG_HZ is less that 100, the compiler > generates an error as follows: > > ../drivers/staging/rtl8192e/rtllib_wx.c: In function 'rtl819x_translate_scan': > ../drivers/staging/rtl8192e/rtllib_wx.c:220:57: warning: division by zero [-Wdiv-by-zero] > 220 | (jiffies - network->last_scanned) / (HZ / 100)); > | ^ > In file included from ../include/linux/skbuff.h:45, > from ../include/linux/if_ether.h:19, > from ../include/linux/etherdevice.h:20, > from ../drivers/staging/rtl8192e/rtllib_wx.c:18: > ../drivers/staging/rtl8192e/rtllib_wx.c: In function 'rtllib_wx_get_scan': > ../drivers/staging/rtl8192e/rtllib_wx.c:261:70: warning: division by zero [-Wdiv-by-zero] > 261 | (jiffies - network->last_scanned) / > | > > In fact, is HZ is not a multiple of 100, the calculation will be wrong, > but it will compile correctly. > > The fix is to get rid of the (HZ / 100) portion. To decrease any round-off > errors, the compiler is forced to perform the 100 * jiffies-difference > before dividing by HZ. This patch is only compile tested. > > Reported-by: Randy Dunlap > Acked-by: Randy Dunlap # build-tested > Signed-off-by: Larry Finger > --- > v2 - some commit log lines are shortened > - add space after * operator > --- > drivers/staging/rtl8192e/rtllib_wx.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c > index da2c41c9b92f..217426ee2e92 100644 > --- a/drivers/staging/rtl8192e/rtllib_wx.c > +++ b/drivers/staging/rtl8192e/rtllib_wx.c > @@ -217,7 +217,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, > p = custom; > p += scnprintf(p, MAX_CUSTOM_LEN - (p - custom), > " Last beacon: %lums ago", > - (jiffies - network->last_scanned) / (HZ / 100)); > + (100 * (jiffies - network->last_scanned)) / HZ); > iwe.u.data.length = p - custom; > if (iwe.u.data.length) > start = iwe_stream_add_point_rsl(info, start, stop, > @@ -258,8 +258,8 @@ int rtllib_wx_get_scan(struct rtllib_device *ieee, > escape_essid(network->ssid, > network->ssid_len), > network->bssid, > - (jiffies - network->last_scanned) / > - (HZ / 100)); > + (100 * (jiffies - network->last_scanned)) / > + HZ); > } > > spin_unlock_irqrestore(&ieee->lock, flags); Tested-by: Philipp Hortmann