From patchwork Fri May 5 11:57:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98623 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp81121qge; Fri, 5 May 2017 04:58:07 -0700 (PDT) X-Received: by 10.98.213.69 with SMTP id d66mr3426184pfg.88.1493985487857; Fri, 05 May 2017 04:58:07 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m25si5435892pli.193.2017.05.05.04.58.07; Fri, 05 May 2017 04:58:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752693AbdEEL5u (ORCPT + 6 others); Fri, 5 May 2017 07:57:50 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:52806 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752752AbdEEL5s (ORCPT ); Fri, 5 May 2017 07:57:48 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.145]) with ESMTPA (Nemesis) id 0MLy2e-1d7irK2P3E-007jxZ; Fri, 05 May 2017 13:57:34 +0200 From: Arnd Bergmann To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, Jeff Kirsher , Yanjiang Jin , Yanir Lubetkin , Arnd Bergmann Subject: [PATCH 5/9] [3.18-stable] e1000e: fix call to do_div() to use u64 arg Date: Fri, 5 May 2017 13:57:21 +0200 Message-Id: <20170505115725.1424772-6-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170505115725.1424772-1-arnd@arndb.de> References: <20170505115725.1424772-1-arnd@arndb.de> X-Provags-ID: V03:K0:pBGTqQuHnfXYmkUqRS37HP/n5VTg6Kwd4MslYZVre1AKxib3LfA 2ndKux9Rt+uK9lBvTMVIf2Ob1kGGY96YAZ+003eeFj7rZJhyVCJi6G2S85FCOVi5woNdKtp xAJlEPwTYf2ioXi2FVdmcgtD4HKkvTQ2xyH9zhtaQkop+k7QiUMTEBSzYt7W1F6uGmt+s9V RPerAQw3tDjEe9h4OyWgA== X-UI-Out-Filterresults: notjunk:1; V01:K0:pX5bdAshNmU=:7/+GYdPsnFHsACoSCNW3CK 8y6CEEcV/kwvkU9p2Qmwqwa95gw3MufHxdBMHnoQii0cuGQTHCoug6Rf4kuFWwpK1UjDMGwUg jm8db/esljUF2ULHTlyrGK78TwGGCIPl2hWlmYnVZD5g4oUIxntn8f7lKdhSAS7qHd0bvHwfg CurzzKOi54xHPBdIQD3/oEUUca4e20s3VYq6wtANo42FBTzATvNpOTc+yD2hKAc4HIE48MGHY u+6+pFt1lUiBbkFIVTsiNiCzZGEaTpsxVJ9MIqIPQWgHj2fQ+7Z9bH/3M/6GlwtetaryDboMn 7r7jnlQv0EWLaU14vou6fcDjDOzTMfv6aJQi3CX37KrfD1+jye0Lgxk6Ikii0TqMQXkKYIF7M zCIRZOZxmS/g/5dFUzuaZqmZIsT6TSAZrQMGgdwn2lfT8uDDe1MPe7cdpaLNaZCZo/YiL44k8 DuO0MLoFlzPJ07ug/AeyRiFaaqpHzOZtBJQX0Q5s25K//fkO38qBZP/LaKO1sXEc0i5cGPh2I 98OFBs3hsdguO4Ri+ElKm6gYkaTNOc6cPC03qmvAAfUXrcTnGND0CQJgSdszVRms3+KZ3fOJO DO/9VLvXoqS4p1Lb4bTKSjUNdZQyo1j3L3NxzhXrCYpe/CjCNHLEYoipOPoQMlg/ASHKNhOcB T8bg1QdBb89LAqKgP+fdEX+zFGlv6S7Ss1hqkiT6uR8XqtaHzKW3et10R++HCE+IrgVg= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jeff Kirsher Commit 30544af5483755b11bb5924736e9e0b45ef0644a upstream. We were using s64 for lat_ns (latency nano-second value) since in our calculations a negative value could be a resultant. For negative values, we then assign lat_ns to be zero, so the value passed to do_div() was never negative, but do_div() expects the argument type to be u64, so do a cast to resolve a compile warning seen on PowerPC. CC: Yanjiang Jin CC: Yanir Lubetkin Reported-by: Yanjiang Jin Signed-off-by: Jeff Kirsher Tested-by: Aaron Brown Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) -- 2.9.0 diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index 48b74a549155..feb618468d15 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -983,7 +983,7 @@ static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link) u16 max_snoop, max_nosnoop; u16 max_ltr_enc; /* max LTR latency encoded */ s64 lat_ns; /* latency (ns) */ - s64 value; + u64 value; u32 rxa; if (!hw->adapter->max_frame_size) { @@ -1010,12 +1010,13 @@ static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link) */ lat_ns = ((s64)rxa * 1024 - (2 * (s64)hw->adapter->max_frame_size)) * 8 * 1000; - if (lat_ns < 0) - lat_ns = 0; - else - do_div(lat_ns, speed); + if (lat_ns < 0) { + value = 0; + } else { + value = lat_ns; + do_div(value, speed); + } - value = lat_ns; while (value > PCI_LTR_VALUE_MASK) { scale++; value = DIV_ROUND_UP(value, (1 << 5));