mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-23 21:54:27 +02:00
MdeModulePkg: Add extra RestoreTpl() call in DiskIo
Adds a call to RestoreTpl() in DiskIo2ReadWriteDisk(). While the current implementation does not technically violate spec on raise/restore TPL, this extra call ensures symmetry between RaiseTpl and RestoreTpl calls, which makes analysis of TPL correctness simpler and permits certain non-standard TPL usages that some platforms require. Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>
This commit is contained in:
parent
afba5358c8
commit
b17ac09cc4
@ -847,6 +847,7 @@ DiskIo2ReadWriteDisk (
|
|||||||
DISK_IO_SUBTASK *Subtask;
|
DISK_IO_SUBTASK *Subtask;
|
||||||
DISK_IO2_TASK *Task;
|
DISK_IO2_TASK *Task;
|
||||||
EFI_TPL OldTpl;
|
EFI_TPL OldTpl;
|
||||||
|
EFI_TPL OldTpl1;
|
||||||
BOOLEAN Blocking;
|
BOOLEAN Blocking;
|
||||||
BOOLEAN SubtaskBlocking;
|
BOOLEAN SubtaskBlocking;
|
||||||
LIST_ENTRY *SubtasksPtr;
|
LIST_ENTRY *SubtasksPtr;
|
||||||
@ -977,7 +978,7 @@ DiskIo2ReadWriteDisk (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gBS->RaiseTPL (TPL_NOTIFY);
|
OldTpl1 = gBS->RaiseTPL (TPL_NOTIFY);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Remove all the remaining subtasks when failure.
|
// Remove all the remaining subtasks when failure.
|
||||||
@ -1012,6 +1013,7 @@ DiskIo2ReadWriteDisk (
|
|||||||
FreePool (Task);
|
FreePool (Task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gBS->RestoreTPL (OldTpl1);
|
||||||
gBS->RestoreTPL (OldTpl);
|
gBS->RestoreTPL (OldTpl);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user