Skip to content

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Dec 23:50
· 1413 commits to refs/heads/main since this release
23426b8

What's Changed

  • uefi-dxe-core: Bump all crate versions to 5.0.0 to match next Github tag @vineelko (#184)
    Change Details
      ## Description

    uefi-dxe-core: Bump all crate versions to 5.0.0 to match next Github tag

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    NA

    Integration Instructions

    Once this is checked in, I will create a GitHub release, and finally integrate the changes from both uefi-core and uefi-dxe-core into qemu-rust-bins.

      </blockquote>
      <hr>
    </details>
    
  • Test Improvements @joschock (#178)
    Change Details
      ## Description

    With crate->module conversion, tests that used to be separate compilation units and therefore with separate global state now share more global state (for example, anything using a TplMutex is subject to TplMutex global state around the boot services pointer). This PR adds global state lock guards to all tests with global state to account for this.

    This PR also adds a catch/unwind to the global state guard to avoid scenarios where a panic in a test causes the global state lock to get poisoned, which causes false failures on every other test waiting on the global state lock. The code now catches the panic, then allows the lock to be released, and then re-throws the panic with .unwrap() on the catch/unwind closure. This means that panics in a test are now properly caught by the test harness without poisoning the global state lock.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Unit tests pass consistently. Several deadlocky/mutex fail type intermittent issues are no longer observed.

    Integration Instructions

    N/A - but when writing new tests, ensure that if they touch any kind of global state that they use the global state lock wrapper.

      </blockquote>
      <hr>
    </details>
    

⚠️ Breaking Changes

  • uefi-dxe-core: ingest uefi-core's uefi-cpu refactored changes @vineelko (#183)
    Change Details
      ## Description

    uefi-dxe-core: ingest uefi-core's uefi-cpu refactored changes.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Unit Tested

    Integration Instructions

    Once this is checked in, I will increment the version, create a GitHub release, and finally integrate the changes from both uefi-core and uefi-dxe-core into qemu-rust-bins.

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • dxe\_core: GCD: Silently Fail Free Calls During EBS @os-d (#179)
    Change Details
      ## Description

    The original commit that disallowed alloc/free during EBS accidently went too far and debug_asserted and returned an error on all frees during EBS. This was originally only intended for runtime memory types, as those would change the OS memory map. This now blocks platforms and so is fixed by silently failing all frees. The runtime types will be debug_asserted and return an error, but that requires more code reorganization, so is deferred for now and tracked in a GH issue. See the comment in this commit for more details.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Tested on a physical platform that was failing the free assert.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v4.0.0...v5.0.0