Page MenuHomeFreeBSD

linuxkpi: Fix uses of `pmap_change_attr()`
ClosedPublic

Authored by dumbbell on Oct 2 2023, 10:13 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Jul 5, 6:45 AM
Unknown Object (File)
Jun 12 2026, 4:04 AM
Unknown Object (File)
Jun 11 2026, 9:05 PM
Unknown Object (File)
May 17 2026, 11:02 PM
Unknown Object (File)
May 17 2026, 11:02 PM
Unknown Object (File)
May 17 2026, 10:46 PM
Unknown Object (File)
May 14 2026, 3:58 PM
Unknown Object (File)
Apr 29 2026, 1:08 PM

Details

Summary

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().

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable