From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751953AbcAANHy (ORCPT ); Fri, 1 Jan 2016 08:07:54 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:50202 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751741AbcAANHw (ORCPT ); Fri, 1 Jan 2016 08:07:52 -0500 From: Arnd Bergmann To: Jammy Zhou , David Airlie Cc: Eric Huang , Alex Deucher , Christian =?ISO-8859-1?Q?K=F6nig?= , David Zhang , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH] drm: powerplay: use div64_s64 instead of do_div Date: Fri, 01 Jan 2016 14:07:41 +0100 Message-ID: <5249276.tkZ1gbxakA@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:f8DqyU26c14Cnc5C8BOFosBD+oM4VailK3buO9s6totjWY30+iT cd+256SDKjvKKMHab/6qmXe3kf50Vr1CVQdGk9Tv+B8g3WKx/XbnEJRYcGUQKHroYLQ2GAM BVqaNNVNgvgbWNZA+4lCBJlRwxcgAZ1NN6/7kZIqoi4o6fSqfO4LQO0GjHIfC9FBJUdgi3P 02IZ+lu7RxNgPhxDseCgg== X-UI-Out-Filterresults: notjunk:1;V01:K0:LI0fyrKSbTU=:7s4jTT0/esrhff4GWaCURo ZRvKLPLPZBzYvLfaQhvWi5Uq9asSBpAS+sI1aIteXj2P1zMKgOtAlvIvyBVC9y4NnTNZ+8z7R XmVbXaJtHJNkttN01sC98zzwiIxcAA9NzFaJuy70rZ0rZgfZPnTshi2Nda0CrEvU1wXwHgJ2W sytXPLLBG4ZEPwL4jzJwQdVBxf8dD768PM9JyKzIxVQ0VF1tnJWkAnAp2WlYJ4lupkjFK1L7e Py5y6SfNxtHHaUdSHYcNMruZHd3WJLZ5YMRsCpXg8+DZiJr3SkLUHhrzyW4lv+K0un/N9Ra9i AsEcM344Zm1rUiXcFst0QsdrBXms55BfuteK0oY/nk3dS4kcc43cTeryF0i0B6NJD7klXJOU9 3Tw5Sbx4fuqXdlMvKCaKTZqOfL6Mh+DtgZPIuU3igt9E03KBrg8kano5hNM1NbwN62OLE4lIJ 6dzW/yqIqfpGFRjEmbNfnwzb17X2iwIPvENHP/cFWqZ2kuhD5k9IUkg0H6jLdfgDdq6iMiWs7 CH6ExqKp39a58CvkLxDYgvG4PIaWqHcCxWbTjRia+T57Ww/O5VTkBI0h2AEdS+dPlxgZan7hs xyzuXPXuWtoEWAzuf/eHwi1N1gDHIxxzcHB91itid5ky3AMm8YaFLSY0LAnJFLCn8nuohsySP pIWNjNu4mZg1ps4PAYaW2wyVvQmezs8jbm1FdYPHS0+XVbVLDCAlyyJOn7NEA3vB5Rk97Jipp xwIl5IyVcPptsTdz Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The newly added code for Fiji creates a correct compiler warning about invalid use of the do_div macro: In file included from powerplay/hwmgr/ppatomctrl.c:31:0: drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h: In function 'fDivide': drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h:382:89: warning: comparison of distinct pointer types lacks a cast do_div(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ do_div() divides an unsigned 64-bit number by an unsigned 32-bit number. The code instead wants to divide two signed 64-bit numbers, which is done using the div64_s64 function. Signed-off-by: Arnd Bergmann Fixes: 770911a3cfbb ("drm/amd/powerplay: add/update headers for Fiji SMU and DPM") --- Found on ARM allmodconfig on yesterday's linux-next diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h b/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h index 42f2423cddea..411cb0fcdf98 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h @@ -379,7 +379,7 @@ fInt fDivide (fInt X, fInt Y) longlongX = longlongX << 16; /*Q(16,16) -> Q(32,32) */ - do_div(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ + div64_s64(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ fQuotient.full = (int)longlongX; return fQuotient;