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

Reply via email to