Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c45f5c99 authored by Jon Derrick's avatar Jon Derrick Committed by Jens Axboe
Browse files

nvme: Fixes u64 division which breaks i386 builds



Uses div_u64 for u64 division and round_down, a bitwise operation,
instead of rounddown, which uses a modulus.

Signed-off-by: default avatarJon Derrick <jonathan.derrick@intel.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 8ffaadf7
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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