Commit aa45b51a authored by Dan Ellis's avatar Dan Ellis
Browse files

Fixed lr corruption in UpCall handler

Detail:
  lr was being used as a temporary register to store the buffer handle in
whilst checking for ownership.  If DeviceFS didn't own the buffer the call
was being made on, it then used this value in a MOV pc, lr thus going who
knows where...

Admin:
  Checked and still works.  Appears to cure previous problem where issuing
Upcall 8 could cause a branch through zero error.

Version 0.55. Tagged as 'DeviceFS-0_55'
parent 88613d98
......@@ -11,14 +11,14 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "0.54"
Module_Version SETA 54
Module_MajorVersion SETS "0.55"
Module_Version SETA 55
Module_MinorVersion SETS ""
Module_Date SETS "07 Dec 2000"
Module_ApplicationDate2 SETS "07-Dec-00"
Module_ApplicationDate4 SETS "07-Dec-2000"
Module_Date SETS "11 Dec 2000"
Module_ApplicationDate2 SETS "11-Dec-00"
Module_ApplicationDate4 SETS "11-Dec-2000"
Module_ComponentName SETS "DeviceFS"
Module_ComponentPath SETS "RiscOS/Sources/HWSupport/DeviceFS"
Module_FullVersion SETS "0.54"
Module_HelpVersion SETS "0.54 (07 Dec 2000)"
Module_FullVersion SETS "0.55"
Module_HelpVersion SETS "0.55 (11 Dec 2000)"
END
/* (0.54)
/* (0.55)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 0.54
#define Module_MajorVersion_CMHG 0.55
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 07 Dec 2000
#define Module_Date_CMHG 11 Dec 2000
#define Module_MajorVersion "0.54"
#define Module_Version 54
#define Module_MajorVersion "0.55"
#define Module_Version 55
#define Module_MinorVersion ""
#define Module_Date "07 Dec 2000"
#define Module_Date "11 Dec 2000"
#define Module_ApplicationDate2 "07-Dec-00"
#define Module_ApplicationDate4 "07-Dec-2000"
#define Module_ApplicationDate2 "11-Dec-00"
#define Module_ApplicationDate4 "11-Dec-2000"
#define Module_ComponentName "DeviceFS"
#define Module_ComponentPath "RiscOS/Sources/HWSupport/DeviceFS"
#define Module_FullVersion "0.54"
#define Module_HelpVersion "0.54 (07 Dec 2000)"
#define Module_FullVersion "0.55"
#define Module_HelpVersion "0.55 (11 Dec 2000)"
......@@ -1618,8 +1618,8 @@ UpCall ROUT
Pull "r0-r4,pr", EQ
MOVEQ pc, lr ; yes, so unstack and then exit
LDR lr, [r3, #file_BufferHandle]
TEQ lr, r1 ; is it our buffer?
LDR pr, [r3, #file_BufferHandle]
TEQ pr, r1 ; is it our buffer?
LDRNE r3, [r3, #file_Next]
BNE %00 ; loop until all checked
......
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