Kernel: Make _SEG, _BBN and _ADR lookup absolute

This commit is contained in:
Bananymous 2025-08-14 19:04:26 +03:00
parent 064aaef6c3
commit 3804d4332b
1 changed files with 3 additions and 3 deletions

View File

@ -386,14 +386,14 @@ namespace Kernel::ACPI::AML
ASSERT(opregion.address_space == GAS::AddressSpaceID::PCIConfig); ASSERT(opregion.address_space == GAS::AddressSpaceID::PCIConfig);
seg = 0; seg = 0;
if (auto seg_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_SEG"_sv)))); seg_res.node != nullptr) if (auto seg_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_SEG"_sv)), true)); seg_res.node != nullptr)
seg = TRY(convert_node(TRY(evaluate_node(seg_res.path, seg_res.node->node)), ConvInteger, -1)).as.integer.value; seg = TRY(convert_node(TRY(evaluate_node(seg_res.path, seg_res.node->node)), ConvInteger, -1)).as.integer.value;
bus = 0; bus = 0;
if (auto bbn_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_BBN"_sv)))); bbn_res.node != nullptr) if (auto bbn_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_BBN"_sv)), true)); bbn_res.node != nullptr)
bus = TRY(convert_node(TRY(evaluate_node(bbn_res.path, bbn_res.node->node)), ConvInteger, -1)).as.integer.value; bus = TRY(convert_node(TRY(evaluate_node(bbn_res.path, bbn_res.node->node)), ConvInteger, -1)).as.integer.value;
auto adr_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_ADR"_sv)))); auto adr_res = TRY(Namespace::root_namespace().find_named_object(opregion.scope(), TRY(AML::NameString::from_string("_ADR"_sv)), true));
if (adr_res.node == nullptr) if (adr_res.node == nullptr)
{ {
dwarnln("No _ADR for PCIConfig OpRegion"); dwarnln("No _ADR for PCIConfig OpRegion");