On Sat, Feb 24, 2018 at 04:20:52PM +0800, Ni, Ruiyu wrote: > On 2/24/2018 2:23 PM, Guo Heyi wrote: > >Hi folks, > > > >In BmDriverHealth.c, function BmRepairAllControllers may recursively call > >itself > >if some driver health protocol returns > >EfiDriverHealthStatusReconnectRequired. > >However, if there is something wrong in some 3rd party driver (e.g. PCI > >oprom), > >the driver health protocol of that driver may always return such status even > >after one and another reconnect. The endless iteration will cause stack > >overflow > >and then system exception, and it may be not easy to find that the exception > >is > >actually caused by stack overflow. > > yes. I agree. > If a buggy PCI oprom always return ReconnectRequired, the stack overflow > will happen. > > How about we choose maximum recursive call depth as 10 and continue to > boot if call depth reaches 11?
That's fine for me :) Thanks, Gary (Heyi Guo) > > > > >So does it make sense to set a maximum count of this recursive call to avoid > >whole system hang even there is a buggy 3rd party driver? > > > >Thanks, > > > >Gary (Heyi Guo) > > > > > -- > Thanks, > Ray _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel