bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH hurd-dde] libmachdev: avoid malloc overhead when sending package


From: Justus Winter
Subject: [PATCH hurd-dde] libmachdev: avoid malloc overhead when sending package
Date: Wed, 26 Nov 2014 20:21:57 +0100

* libmachdev/net.c (netif_rx_handle): Allocate message buffer on the
stack.
---
 libmachdev/net.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/libmachdev/net.c b/libmachdev/net.c
index e04fa80..99368d7 100644
--- a/libmachdev/net.c
+++ b/libmachdev/net.c
@@ -223,7 +223,7 @@ static void
 netif_rx_handle (char *data, int len, struct net_device *dev)
 {
   int pack_size;
-  net_rcv_msg_t net_msg;
+  struct net_rcv_msg net_msg_buf, *net_msg = &net_msg_buf;
   struct ether_header *eh;
   struct packet_header *ph;
   struct net_data *nd;
@@ -231,11 +231,6 @@ netif_rx_handle (char *data, int len, struct net_device 
*dev)
   nd = search_nd(dev);
   assert (nd);
 
-  /* Allocate a kernel message buffer.  */
-  net_msg = malloc (sizeof (*net_msg));
-  if (!net_msg)
-    return;
-
   pack_size = len - sizeof (struct ethhdr);
   /* remember message sizes must be rounded up */
   net_msg->msg_hdr.msgh_size =
@@ -260,7 +255,6 @@ netif_rx_handle (char *data, int len, struct net_device 
*dev)
   net_msg->packet_type = packet_type;
   net_msg->net_rcv_msg_packet_count = ph->length;
   deliver_msg (net_msg, &nd->ifnet.port_list);
-  free (net_msg);
 }
 
 /* Mach device interface routines.  */
-- 
2.1.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]