From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755136AbcAMVuS (ORCPT ); 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 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 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" 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 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;