Go ahead for trunk On 20.01.2014 20:48, Paulo Flabiano Smorigo wrote: > Hi all, > > As I said in the my last email, I'm running tests in a network with > heavy traffic, like, over 150 arp requests comming every second. Under these > condition, I found an issue in the receive_packets function. > > On line 1456 of net/net.c there is a while (1) that only exits if there > is a stop condition and more then 10 packages or if there is no package > received. > > If GRUB is idle and enter in this loop, the only condition to leave is > if it doesn't have incoming packages. In a network with heavy traffic > (like mine) this never happens. > > The result is that GRUB becomes muted and freeze. > > I made a small fix that exits this loop if the incoming packages rearch > a maximum level. I used 100 packages and it seems fine. > > --- > grub-core/net/net.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/grub-core/net/net.c b/grub-core/net/net.c > index 683ab28..f2e723b 100644 > --- a/grub-core/net/net.c > +++ b/grub-core/net/net.c > @@ -1453,7 +1453,7 @@ receive_packets (struct grub_net_card *card, int > *stop_condition) > } > card->opened = 1; > } > - while (1) > + while (received < 100) > { > /* Maybe should be better have a fixed number of packets for each card > and just mark them as used and not used. */ >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel