Page MenuHomeFreeBSD

D6668.diff
No OneTemporary

D6668.diff

Index: head/sys/amd64/amd64/pmap.c
===================================================================
--- head/sys/amd64/amd64/pmap.c
+++ head/sys/amd64/amd64/pmap.c
@@ -6533,7 +6533,7 @@
pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode)
{
vm_offset_t base, offset, tmpva;
- vm_paddr_t pa_start, pa_end;
+ vm_paddr_t pa_start, pa_end, pa_end1;
pdp_entry_t *pdpe;
pd_entry_t *pde;
pt_entry_t *pte;
@@ -6716,9 +6716,12 @@
tmpva += PAGE_SIZE;
}
}
- if (error == 0 && pa_start != pa_end)
- error = pmap_change_attr_locked(PHYS_TO_DMAP(pa_start),
- pa_end - pa_start, mode);
+ if (error == 0 && pa_start != pa_end && pa_start < dmaplimit) {
+ pa_end1 = MIN(pa_end, dmaplimit);
+ if (pa_start != pa_end1)
+ error = pmap_change_attr_locked(PHYS_TO_DMAP(pa_start),
+ pa_end1 - pa_start, mode);
+ }
/*
* Flush CPU caches if required to make sure any data isn't cached that

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 21, 11:45 AM (12 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28922362
Default Alt Text
D6668.diff (923 B)

Event Timeline