Fix some uses of dmaplimit.
dmaplimit is the first byte after the end of DMAP. Reported by: "Johnson, Archna" <Archna.Johnson@netapp.com> Reviewed by: alc, markj Approved by: re (gjb) MFC after: 1 week Differential revision: https://reviews.freebsd.org/D17318
This commit is contained in:
parent
28337eb676
commit
05e1cca97a
@ -1422,7 +1422,7 @@ pmap_init(void)
|
|||||||
if (ppim->va == 0)
|
if (ppim->va == 0)
|
||||||
continue;
|
continue;
|
||||||
/* Make the direct map consistent */
|
/* Make the direct map consistent */
|
||||||
if (ppim->pa < dmaplimit && ppim->pa + ppim->sz < dmaplimit) {
|
if (ppim->pa < dmaplimit && ppim->pa + ppim->sz <= dmaplimit) {
|
||||||
(void)pmap_change_attr(PHYS_TO_DMAP(ppim->pa),
|
(void)pmap_change_attr(PHYS_TO_DMAP(ppim->pa),
|
||||||
ppim->sz, ppim->mode);
|
ppim->sz, ppim->mode);
|
||||||
}
|
}
|
||||||
@ -7055,7 +7055,7 @@ pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode)
|
|||||||
* If the specified range of physical addresses fits within
|
* If the specified range of physical addresses fits within
|
||||||
* the direct map window, use the direct map.
|
* the direct map window, use the direct map.
|
||||||
*/
|
*/
|
||||||
if (pa < dmaplimit && pa + size < dmaplimit) {
|
if (pa < dmaplimit && pa + size <= dmaplimit) {
|
||||||
va = PHYS_TO_DMAP(pa);
|
va = PHYS_TO_DMAP(pa);
|
||||||
if (!pmap_change_attr(va, size, mode))
|
if (!pmap_change_attr(va, size, mode))
|
||||||
return ((void *)(va + offset));
|
return ((void *)(va + offset));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user