]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/net/net.c (receive_packets): Stop after 100 packets to let
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 22 Jun 2012 10:42:31 +0000 (12:42 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 22 Jun 2012 10:42:31 +0000 (12:42 +0200)
sync part to handle them.

ChangeLog
grub-core/net/net.c

index e40f7e9021fa0f8f6b2ca1be0bdce5405602bdb5..e88bb4c7dbd4c471c210f276cc56caca7d417619 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-22  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/net/net.c (receive_packets): Stop after 100 packets to let
+       sync part to handle them.
+
 2012-06-21  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/main.c (grub_set_prefix_and_root): Fix memory leak.
index 28ec09ad4cbe74653b8161255bdfaa1124277e1e..dbfc9dba43b5498125e6518332a6b91c90ac2d32 100644 (file)
@@ -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)
        {