Page MenuHomeFreeBSD

acpi: Cleanup handling of suballocated resources
ClosedPublic

Authored by jhb on Jan 31 2024, 7:48 PM.
Tags
None
Referenced Files
F102048623: D43687.diff
Wed, Nov 6, 11:30 PM
F102009256: D43687.diff
Wed, Nov 6, 12:16 PM
Unknown Object (File)
Tue, Nov 5, 9:34 AM
Unknown Object (File)
Wed, Oct 16, 12:23 AM
Unknown Object (File)
Mon, Oct 14, 4:55 PM
Unknown Object (File)
Sun, Oct 13, 6:06 PM
Unknown Object (File)
Sun, Oct 13, 4:12 AM
Unknown Object (File)
Sat, Oct 12, 2:29 PM
Subscribers
None

Details

Summary

For resources suballocated from the system resource rmans, handle
those in the ACPI bus driver without passing them up to the parent.
This means using bus_generic_rman_* for several bus methods for
operations on suballocated resources. For bus_map/unmap_resource,
find the system resource allocated from the parent bus (nexus) that
contains the range being mapped and request a mapping of that parent
resource.

This avoids a layering violation where nexus drivers were previously
asked to manage the activation and mapping of resources created
belonging to the ACPI resource managers.

Note that this does require passing RF_ACTIVE (with RF_UNMAPPED) when
allocating system resources from the parent.

While here, don't assume that the parent bus (nexus) provides a
resource list that sysres resources are placed on. Instead, create a
dedicated resource_list in the ACPI bus driver's softc to hold sysres
resources.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 55732
Build 52621: arc lint + arc unit