HomeFreeBSD

linuxkpi: Fix uses of `pmap_change_attr()`

Description

linuxkpi: Fix uses of pmap_change_attr()

[Why]
This function takes an offset and a length as argument, not a physical
address and a number of pages.

This misuse caused the set_memory_*() and
arch_io_reserve_memtype_wc() functions to return EINVAL.

Another problem was the fact that they returned errors as a positive
integer, whereas Linux uses negative integers.

[How]
Physical addresses and number of pages are converted to offset+length in
the set_memory_*() functions.

arch_io_reserve_memtype_wc() now calls pmap_change_attr() directly
instead of using set_memory_wc().

Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D42053

Details

Provenance
dumbbellAuthored on Aug 16 2023, 8:32 PM
Reviewer
manu
Differential Revision
D42053: linuxkpi: Fix uses of `pmap_change_attr()`
Parents
rG5a82fc7859f7: sbuf.9: Add LIBRARY section
Branches
Unknown
Tags
Unknown