Skip to content

Commit

Permalink
nvme: Fixes u64 division which breaks i386 builds
Browse files Browse the repository at this point in the history
Uses div_u64 for u64 division and round_down, a bitwise operation,
instead of rounddown, which uses a modulus.

Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
  • Loading branch information
Jon Derrick authored and Jens Axboe committed Jul 21, 2015
1 parent 8ffaadf commit c45f5c9
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/block/nvme-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1454,8 +1454,9 @@ static int nvme_cmb_qdepth(struct nvme_dev *dev, int nr_io_queues,
unsigned q_size_aligned = roundup(q_depth * entry_size, dev->page_size);

if (q_size_aligned * nr_io_queues > dev->cmb_size) {
q_depth = rounddown(dev->cmb_size / nr_io_queues,
dev->page_size) / entry_size;
u64 mem_per_q = div_u64(dev->cmb_size, nr_io_queues);
mem_per_q = round_down(mem_per_q, dev->page_size);
q_depth = div_u64(mem_per_q, entry_size);

/*
* Ensure the reduced q_depth is above some threshold where it
Expand Down

0 comments on commit c45f5c9

Please sign in to comment.