mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
iommufd/iova_bitmap: Consolidate iova_bitmap_set exit conditionals
There's no need to have two conditionals when they are closely tied together. Move the setting of bitmap::set_ahead_length after it checks for ::pages array out of bounds access. Link: https://lore.kernel.org/r/20240627110105.62325-10-joao.m.martins@oracle.com Signed-off-by: Joao Martins <joao.m.martins@oracle.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Tested-by: Matt Ochs <mochs@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
781bc08797
commit
00fa1a8991
|
|
@ -465,18 +465,18 @@ void iova_bitmap_set(struct iova_bitmap *bitmap,
|
|||
last_bit - cur_bit + 1);
|
||||
void *kaddr;
|
||||
|
||||
if (unlikely(page_idx > last_page_idx))
|
||||
if (unlikely(page_idx > last_page_idx)) {
|
||||
unsigned long left =
|
||||
((last_bit - cur_bit + 1) << mapped->pgshift);
|
||||
|
||||
bitmap->set_ahead_length = left;
|
||||
break;
|
||||
}
|
||||
|
||||
kaddr = kmap_local_page(mapped->pages[page_idx]);
|
||||
bitmap_set(kaddr, offset, nbits);
|
||||
kunmap_local(kaddr);
|
||||
cur_bit += nbits;
|
||||
} while (cur_bit <= last_bit);
|
||||
|
||||
if (unlikely(cur_bit <= last_bit)) {
|
||||
bitmap->set_ahead_length =
|
||||
((last_bit - cur_bit + 1) << bitmap->mapped.pgshift);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(iova_bitmap_set, IOMMUFD);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user