Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
K Kernel
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • RiscOS
  • Sources
  • Kernel
  • Merge requests
  • !41

Merged
Created Sep 14, 2020 by Jeffrey Lee@jleeDeveloper

OS_DynamicArea 22 fixes

  • Overview 0
  • Commits 1
  • Changes 1

Multiple fixes, mostly related to error handling.

  1. Ensure R1 is initialised correctly when generating BadPageNumber errors (labels 94 & 95). Generally this involves setting it to zero to indicate that no call to LogOp_MapOut is required. Failing to do this would typically result in a crash.
  2. When branching back to the start of the loop after calling GetNonReservedPage, ensure R0 is reset to zero. Failing to do this would have a performance impact on LogOp_MapOut, but shouldn't be fatal.
  3. In the main routine, postpone writing back DANode_Size until after the call to physical_to_ppn (because we may decide to abort the op and return an error without moving a page).
  4. Fix stack offset when accessing PMPLogOp_GlobalTBLFlushNeeded. Getting this wrong could potentially result in some TLB maintenance being skipped when moving uncacheable pages.
  5. Fix stack imbalance at label 94
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: LogOpFixes