Jason Gunthorpe
58829512ad
iommupt: Fix the end_index calculation in __map_range_leaf()
...
Sashiko noticed a mismatch of units in this math: num_leaves is
actually the number of leaf *entries* (so a 16-item contiguous leaf
is one num_leaves), while index is in items. The mismatch in maths
causes __map_range_leaf() to exit early instead of efficiently
filling a larger range of contiguous PTEs.
The early exit is caught by the functions above and then
__map_range_leaf() is re-invoked, so there is no functional issue.
Correct the misuse of units by adjusting num_leaves with the leaf
size and avoid the performance cost of looping externally.
There are also some mismatched types for num_leaves; simplify
things to remove the duplicated calculations.
Fixes: d6c65b0fd6 ("iommupt: Avoid rewalking during map")
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
Reviewed-by: Samiullah Khawaja <skhawaja@google.com >
Reviewd-by: Pranjal Shrivastava <praan@google.com >
Tested-by: Josua Mayer <josua@solid-run.com >
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com >
2026-05-15 07:29:16 +02:00
..
2026-05-01 15:14:25 -06:00
2026-05-01 16:32:42 -07:00
2026-04-30 23:21:31 +02:00
2026-04-27 11:38:16 +02:00
2026-04-23 12:21:14 -07:00
2026-04-27 06:48:16 +09:00
2026-05-08 06:44:42 -06:00
2026-05-06 16:22:33 -04:00
2026-04-24 13:23:50 -07:00
2026-04-27 15:52:51 -06:00
2026-05-04 12:48:30 -07:00
2026-04-28 20:55:53 -07:00
2026-04-24 13:23:50 -07:00
2026-04-06 09:04:53 +02:00
2026-04-17 14:09:02 -07:00
2026-04-14 17:10:15 -07:00
2026-04-16 17:37:03 +08:00
2026-04-17 15:52:58 -07:00
2026-04-21 14:12:01 -07:00
2026-04-04 03:15:39 +09:00
2026-04-17 10:29:01 -07:00
2026-04-24 11:44:52 -07:00
2026-04-30 11:37:39 +02:00
2026-05-05 14:49:48 +02:00
2026-04-29 08:56:16 +02:00
2026-04-10 11:21:06 -03:00
2026-04-06 09:04:53 +02:00
2026-04-24 11:59:46 -07:00
2026-05-08 17:53:59 +10:00
2026-04-02 15:55:09 +02:00
2026-04-22 18:36:40 -07:00
2026-04-02 22:33:44 +02:00
2026-04-12 23:29:31 -07:00
2026-04-24 11:44:52 -07:00
2026-05-07 16:30:12 -07:00
2026-04-06 09:43:18 -05:00
2026-04-24 13:23:50 -07:00
2026-05-07 10:59:07 +02:00
2026-04-12 22:06:02 +02:00
2026-04-24 13:23:50 -07:00
2026-05-02 15:30:48 -03:00
2026-04-22 18:36:40 -07:00
2026-04-07 10:06:50 +02:00
2026-05-15 07:29:16 +02:00
2026-04-17 07:18:03 -07:00
2026-04-09 13:49:19 +01:00
2026-04-18 13:10:14 -05:00
2026-05-01 11:26:15 -07:00
2026-04-27 08:41:22 +02:00
2026-04-17 11:12:42 -07:00
2026-04-20 11:31:01 -07:00
2026-04-24 13:23:50 -07:00
2026-04-10 10:29:58 +02:00
2026-04-02 17:06:09 +02:00
2026-04-27 15:08:04 +02:00
2026-04-24 13:23:50 -07:00
2026-05-07 10:32:03 -07:00
2026-04-27 18:00:43 -07:00
2026-04-15 14:41:21 -07:00
2026-04-13 10:40:26 -07:00
2026-04-27 15:47:21 -06:00
2026-04-06 09:04:53 +02:00
2026-04-18 11:29:14 -07:00
2026-05-04 11:48:12 +02:00
2026-04-02 17:05:56 +02:00
2026-05-08 15:50:06 -05:00
2026-04-23 11:22:16 -07:00
2026-04-14 16:48:56 -07:00
2026-04-17 10:22:08 -07:00
2026-04-18 16:59:09 -07:00
2026-05-07 08:46:27 -07:00
2026-04-27 14:53:30 +02:00
2026-04-19 08:47:40 -07:00
2026-04-01 16:03:05 +02:00
2026-04-02 16:33:00 +02:00
2026-04-23 08:37:07 -07:00
2026-05-06 21:26:30 +09:00
2026-04-17 14:18:55 -07:00
2026-04-20 16:46:22 -07:00
2026-04-28 19:03:50 -07:00
2026-04-06 09:37:51 -05:00
2026-04-25 16:39:03 -07:00
2026-04-28 14:45:02 +02:00
2026-05-05 14:38:31 -07:00
2026-04-17 14:18:55 -07:00
2026-04-17 10:16:53 -07:00
2026-05-06 23:09:33 +09:00
2026-05-04 11:36:47 +02:00
2026-04-26 21:15:04 -04:00
2026-04-16 20:34:34 -07:00
2026-04-14 08:55:18 -07:00
2026-04-10 13:10:28 +02:00
2026-04-19 08:44:41 -07:00
2026-04-21 20:58:06 -04:00
2026-04-05 13:53:44 -07:00
2026-05-08 17:18:43 +02:00
2026-04-04 00:47:50 +02:00
2026-04-21 12:01:22 -06:00
2026-04-23 16:50:42 -07:00
2026-05-04 10:35:55 +02:00
2026-04-26 09:51:29 -07:00
2026-04-15 12:59:16 -07:00
2026-04-03 10:55:12 +02:00
2026-04-07 21:06:59 +02:00
2026-04-23 15:32:59 +02:00
2026-04-23 10:24:02 -07:00
2026-04-23 10:24:02 -07:00