[PATCH 3/7] ublk: simplify PFN range loop in __ublk_ctrl_reg_buf

Ming Lei
2026-04-09T13:30:46Z

Use the for-loop increment instead of a manual `i++` past the last
page, and fix the mtree_insert_range end key accordingly.

Suggested-by: Caleb Sander Mateos <csander@purestorage.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
---
drivers/block/ublk_drv.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index f990c10e963a..efbb22fe481c 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -5287,7 +5287,7 @@ static int __ublk_ctrl_reg_buf(struct ublk_device *ub,
unsigned long i;
int ret;

- for (i = 0; i < nr_pages; ) {
+ for (i = 0; i < nr_pages; i++) {
unsigned long pfn = page_to_pfn(pages[i]);
unsigned long start = i;
struct ublk_buf_range *range;
@@ -5296,7 +5296,6 @@ static int __ublk_ctrl_reg_buf(struct ublk_device *ub,
while (i + 1 < nr_pages &&
page_to_pfn(pages[i + 1]) == pfn + (i - start) + 1)
i++;
- i++; /* past the last page in this run */

range = kzalloc(sizeof(*range), GFP_KERNEL);
if (!range) {
@@ -5308,7 +5307,7 @@ static int __ublk_ctrl_reg_buf(struct ublk_device *ub,
range->base_offset = start << PAGE_SHIFT;

ret = mtree_insert_range(&ub->buf_tree, pfn,
- pfn + (i - start) - 1,
+ pfn + (i - start),
range, GFP_KERNEL);
if (ret) {
kfree(range);
--
2.53.0