On 09/02/2023 10:28, Sunil V L wrote:
+  gBS->RestoreTPL (OriginalTPL);
+  RiscVEnableTimerInterrupt (); // enable SMode timer int
+}

This design looks as though it does not support nested timer interrupts.
The call to RestoreTPL() may invoke callbacks that may themselves include
delay loops that wait upon further timer interrupts.  With the above code,
those timer interrupts will never arrive since the timer interrupt is
disabled at the point that you call RestoreTPL().

This will break device drivers such as those for USB network devices that
rely on nested timer interrupts.

Thanks a lot for this feedback and background. We are aware of few issues
in this module. Currently, it is mostly porting what exists today in
edk2-platforms repo. We want to add all these additional fixes after
this basic thing is merged. That way we will have git history instead of
combining all fixes single commit. Andrei has a patch ready and waiting
for this to get merged. We can either combine this with his patch or
create one more.

Would that strategy be fine with you?

Sure, as long as someone other than me is keeping track of the need to fix this bug. My work here is done. :)

Thanks,

Michael



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99881): https://edk2.groups.io/g/devel/message/99881
Mute This Topic: https://groups.io/mt/96593498/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to