summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorArnd Bergmann2015-11-20 17:41:36 +0100
committerDoug Ledford2015-12-07 22:42:33 +0100
commit2c63d1072ad7cf1059333ef5cfa06075bead4a39 (patch)
treed4d2d40ca9d67e97ef9296bc878de62bc3e3aff1 /drivers/infiniband
parentIB/core: use RCU for uverbs id lookup (diff)
downloadkernel-qcow2-linux-2c63d1072ad7cf1059333ef5cfa06075bead4a39.tar.gz
kernel-qcow2-linux-2c63d1072ad7cf1059333ef5cfa06075bead4a39.tar.xz
kernel-qcow2-linux-2c63d1072ad7cf1059333ef5cfa06075bead4a39.zip
IB/iser: use sector_div instead of do_div
do_div is the wrong way to divide a sector_t, as it is less efficient when sector_t is 32-bit wide. With the upcoming do_div optimizations, the kernel starts warning about this: drivers/infiniband/ulp/iser/iser_verbs.c:1296:4: note: in expansion of macro 'do_div' include/asm-generic/div64.h:224:22: warning: passing argument 1 of '__div64_32' from incompatible pointer type This changes the code to use sector_div instead, which always produces optimal code. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index a93070210109..42f4da620f2e 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -1293,7 +1293,7 @@ u8 iser_check_task_pi_status(struct iscsi_iser_task *iser_task,
if (mr_status.fail_status & IB_MR_CHECK_SIG_STATUS) {
sector_t sector_off = mr_status.sig_err.sig_err_offset;
- do_div(sector_off, sector_size + 8);
+ sector_div(sector_off, sector_size + 8);
*sector = scsi_get_lba(iser_task->sc) + sector_off;
pr_err("PI error found type %d at sector %llx "