From 6b9cfac6831699cd1ab565e0bf868286d06dd7b1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 22 Jun 2012 12:42:31 +0200 Subject: [PATCH] * grub-core/net/net.c (receive_packets): Stop after 100 packets to let sync part to handle them. --- ChangeLog | 5 +++++ grub-core/net/net.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index e40f7e902..e88bb4c7d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-06-22 Vladimir Serbinenko + + * grub-core/net/net.c (receive_packets): Stop after 100 packets to let + sync part to handle them. + 2012-06-21 Vladimir Serbinenko * grub-core/kern/main.c (grub_set_prefix_and_root): Fix memory leak. diff --git a/grub-core/net/net.c b/grub-core/net/net.c index 28ec09ad4..dbfc9dba4 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -1311,6 +1311,7 @@ grub_net_fs_close (grub_file_t file) static void receive_packets (struct grub_net_card *card) { + int received = 0; if (card->num_ifaces == 0) return; if (!card->opened) @@ -1331,12 +1332,16 @@ receive_packets (struct grub_net_card *card) and just mark them as used and not used. */ struct grub_net_buff *nb; + if (received > 100) + break; + nb = card->driver->recv (card); if (!nb) { card->last_poll = grub_get_time_ms (); break; } + received++; grub_net_recv_ethernet_packet (nb, card); if (grub_errno) {