Loading...
--- xnu/xnu-8792.81.2/iokit/Kernel/IOBufferMemoryDescriptor.cpp
+++ xnu/xnu-8796.101.5/iokit/Kernel/IOBufferMemoryDescriptor.cpp
@@ -679,9 +679,12 @@
IOAddressRange * range = _ranges.v64;
vm_offset_t alignment = _alignment;
kalloc_heap_t kheap = KHEAP_DATA_BUFFERS;
+ vm_size_t rsize;
if (alignment >= page_size) {
- size = round_page(size);
+ if (!round_page_overflow(size, &rsize)) {
+ size = rsize;
+ }
}
if (reserved) {
@@ -694,7 +697,9 @@
if ((options & kIOMemoryPageable)
|| (kInternalFlagPageSized & internalFlags)) {
- size = round_page(size);
+ if (!round_page_overflow(size, &rsize)) {
+ size = rsize;
+ }
}
if (internalFlags & kInternalFlagHasPointers) {