From patchwork Wed Jan 13 21:49:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101171 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp3625280lbb; Wed, 13 Jan 2016 13:50:36 -0800 (PST) X-Received: by 10.66.102.8 with SMTP id fk8mr768534pab.24.1452721836653; Wed, 13 Jan 2016 13:50:36 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u16si328314pfi.121.2016.01.13.13.50.36; Wed, 13 Jan 2016 13:50:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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 linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755741AbcAMVuS (ORCPT + 29 others); Wed, 13 Jan 2016 16:50:18 -0500 Received: from mout.kundenserver.de ([212.227.126.135]:60483 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752846AbcAMVuQ (ORCPT ); Wed, 13 Jan 2016 16:50:16 -0500 Received: from wuerfel.localnet ([134.3.118.24]) by mrelayeu.kundenserver.de (mreue005) with ESMTPSA (Nemesis) id 0Mb5Ch-1acvxI229b-00KeEH; Wed, 13 Jan 2016 22:49:47 +0100 From: Arnd Bergmann To: Jens Axboe Cc: Matias Bjorling , Linux Kernel Mailing List , linux-arm-kernel@lists.infradead.org, torvalds@linux-foundation.org Subject: [PATCH v2] null_blk: use sector_div instead of do_div Date: Wed, 13 Jan 2016 22:49:45 +0100 Message-ID: <4700074.VeZkC8vNVV@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 X-Provags-ID: V03:K0:mQXw6SEXEeNECcyWH4I8FClXsnUfIYCt0cNXgrgnU/DcowcSgFB 9a3RU2VwyfuzI0dAsS7Ih0aVnDqQxc9VhylDPmsvT/DGq0zqJ6TOV3Kk8p1zk5dgAItP50h vqB3uWEemlQ+/gvyaEpw4V7XiHs0WLomkZOfPLtrffdXKWmhY+nhSbjDpxYa0T15OCOibgP nTsyHWLxVaiMNSeFxOdMQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:DDXSNUheKgY=:EathmDJ52VBf6iQrUtLYpK P/wY7Yr5obavYVGTKlcOhgFkoogUy1Kla405q8+Sd4GT91PaAKFNhfmZtKvJKbsrugaPaf/hW IqcSayAwh6rFJM4S0J2cOYXa2Px0yotNNawJ2Gfvemi0hZ1x+m7BVvFAyzyc0/Epv0oGbyWVd wAtjW9RzZPU6Ll5Z1LKFD8w3STnjW/nK/9TQmWkrLJ4iwte0XB0flH4NEfZ0amgeBJiUrOMyD b41b4QYlgYn8+0wUYs2ttydO+TnzG3+Y0bMDEr208v0fib9pIdW5aSHIxhiUNE++NwHnZZSMG RMGTWs/kuz/xRziyKHDIN06fXYV+1V01FLu11gazNO34YCmEN1AFpzc7662nCGqVqSqzwk4qo pyTwXB/gC4euvbx/6J0YJMxWwbnGNBWHhJuYjNT9aevCDXwUq9xYd+V9iGDcEj7Aij/aC8/ah +e1PIFV0FRtL6QD4VOROTpUK41ufMVtpNXAHMvifBJhq3tyvdcQ3oLsacyDuKangC2juBaKzw K7tcsVsCnTusgubcI24Y8uXSMwcuL9xP8FRTX4w4PyFAcIqZB6fXZVRax0Hy7lumnqQdB28Yb 2ZfFFnIB7nwiKAEDiP+CSfGb7QwG6W/ucNM4z7DZlxEiznnxyJu94aI4dLvA57jrOBOY91ZSi 4dmG2PfrULjR3P601nLKyqR9ZWVOSMhlN2raGCfekJszyeAJGAL1ay0LdzVGBbYqo/P8pGHMk excRfJflbP5b9uT1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dividing a sector_t number should be done using sector_div rather than do_div to optimize the 32-bit sector_t case, and with the latest do_div optimizations, we now get a compile-time warning for this: arch/arm/include/asm/div64.h:32:95: note: expected 'uint64_t * {aka long long unsigned int *}' but argument is of type 'sector_t * {aka long unsigned int *}' drivers/block/null_blk.c:521:81: warning: comparison of distinct pointer types lacks a cast This changes the newly added code to use sector_div. It is a simplified version of the original patch, as Linus Torvalds pointed out that we should not be using an expensive division function in the first place. This version was suggested by Matias Bjorling. Signed-off-by: Arnd Bergmann Cc: Matias Bjorling Fixes: b2b7e00148a2 ("null_blk: register as a LightNVM device") diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c index 95dff91135ad..6f9587156569 100644 --- a/drivers/block/null_blk.c +++ b/drivers/block/null_blk.c @@ -495,17 +495,17 @@ static int null_lnvm_id(struct nvm_dev *dev, struct nvm_id *id) id->ppaf.ch_offset = 56; id->ppaf.ch_len = 8; - do_div(size, bs); /* convert size to pages */ - do_div(size, 256); /* concert size to pgs pr blk */ + sector_div(size, bs); /* convert size to pages */ + size >>= 8; /* concert size to pgs pr blk */ grp = &id->groups[0]; grp->mtype = 0; grp->fmtype = 0; grp->num_ch = 1; grp->num_pg = 256; blksize = size; - do_div(size, (1 << 16)); + size >>= 16; grp->num_lun = size + 1; - do_div(blksize, grp->num_lun); + sector_div(blksize, grp->num_lun); grp->num_blk = blksize; grp->num_pln = 1;