Commit d5e09872 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Fix OS_FindMemMapEntries

Detail:
  s/ChangeDyn - Since the introduction of the 16 byte CAM entry format, OS_FindMemMapEntries has contained a bug where requesting the details for an address which does not have an L2PT page allocated for it (e.g. a location in ROM) would result in a misaligned CAM entry pointer being generated, resulting in either a crash or incorrect data being returned
Admin:
  Tested on Raspberry Pi 2
  Fixes issue reported on forums:
  https://www.riscosopen.org/forum/forums/4/topics/6393


Version 5.57. Tagged as 'Kernel-5_57'
parent eb930b8d
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.56"
Module_Version SETA 556
Module_MajorVersion SETS "5.57"
Module_Version SETA 557
Module_MinorVersion SETS ""
Module_Date SETS "08 Aug 2016"
Module_ApplicationDate SETS "08-Aug-16"
Module_Date SETS "18 Aug 2016"
Module_ApplicationDate SETS "18-Aug-16"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.56"
Module_HelpVersion SETS "5.56 (08 Aug 2016)"
Module_FullVersion SETS "5.57"
Module_HelpVersion SETS "5.57 (18 Aug 2016)"
END
/* (5.56)
/* (5.57)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 5.56
#define Module_MajorVersion_CMHG 5.57
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 08 Aug 2016
#define Module_Date_CMHG 18 Aug 2016
#define Module_MajorVersion "5.56"
#define Module_Version 556
#define Module_MajorVersion "5.57"
#define Module_Version 557
#define Module_MinorVersion ""
#define Module_Date "08 Aug 2016"
#define Module_Date "18 Aug 2016"
#define Module_ApplicationDate "08-Aug-16"
#define Module_ApplicationDate "18-Aug-16"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.56"
#define Module_HelpVersion "5.56 (08 Aug 2016)"
#define Module_LibraryVersionInfo "5:56"
#define Module_FullVersion "5.57"
#define Module_HelpVersion "5.57 (18 Aug 2016)"
#define Module_LibraryVersionInfo "5:57"
......@@ -710,7 +710,7 @@ FindMemMapEntries_Code ROUT
MOV r5, r8, LSR #12 ; r5 = page offset to L2PT entry for log.addr
LDR r5, [r10, r5, LSL #2] ; r5 = L2PT entry for L2PT entry for log.addr
TST r5, #3 ; if page not there
SUBEQ r10, r9, #CAM_EntrySizeLog2 ; then invalid page so go from last one
SUBEQ r10, r9, #CAM_EntrySize ; then invalid page so go from last one
BEQ %FT45
LDR r8, [r8] ; r8 = L2PT entry for log.addr
MOV r8, r8, LSR #12 ; r8 = physaddr / 4K
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment