Page MenuHomeFreeBSD

D40402.id122776.diff
No OneTemporary

D40402.id122776.diff

diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c
--- a/sys/vm/vm_phys.c
+++ b/sys/vm/vm_phys.c
@@ -1262,7 +1262,7 @@
vm_phys_scan_contig(int domain, u_long npages, vm_paddr_t low, vm_paddr_t high,
u_long alignment, vm_paddr_t boundary, int options)
{
- vm_paddr_t pa_end;
+ vm_paddr_t pa_end, pa_start;
vm_page_t m_end, m_run, m_start;
struct vm_phys_seg *seg;
int segind;
@@ -1280,16 +1280,11 @@
break;
if (low >= seg->end)
continue;
- if (low <= seg->start)
- m_start = seg->first_page;
- else
- m_start = &seg->first_page[atop(low - seg->start)];
- if (high < seg->end)
- pa_end = high;
- else
- pa_end = seg->end;
- if (pa_end - VM_PAGE_TO_PHYS(m_start) < ptoa(npages))
+ pa_start = low <= seg->start ? seg->start : low;
+ pa_end = high <= seg->end ? high : seg->end;
+ if (pa_end - pa_start < ptoa(npages))
continue;
+ m_start = &seg->first_page[atop(pa_start - seg->start)];
m_end = &seg->first_page[atop(pa_end - seg->start)];
m_run = vm_page_scan_contig(npages, m_start, m_end,
alignment, boundary, options);

File Metadata

Mime Type
text/plain
Expires
Thu, Aug 27, 3:42 PM (13 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37398499
Default Alt Text
D40402.id122776.diff (1 KB)

Event Timeline