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

(cherry picked from commit 1e99b2ee90956f275c3668e92a408400f2dada1c)

Details

Provenance
dumbbellAuthored on Aug 16 2023, 8:32 PM
wulfCommitted on Feb 17 2024, 8:58 PM
Reviewer
manu
Differential Revision
D42053: linuxkpi: Fix uses of `pmap_change_attr()`
Parents
rGadac86cd7be0: if_eqos: Fix a typo in a kernel error message
Branches
Unknown
Tags
Unknown