[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
- [PATCH hurd-dde 1/7] Drop superfluous files, Justus Winter, 2014/11/26
- [PATCH hurd-dde 6/7] libmachdev: fix size of `net_rcv_msg' message, Justus Winter, 2014/11/26
- [PATCH hurd-dde 7/7] libmachdev: drop static libmachdev.so hack, Justus Winter, 2014/11/26
- [PATCH hurd-dde 3/7] libmachdev: drop unused function, Justus Winter, 2014/11/26
- [PATCH hurd-dde 4/7] libmachdev: drop debugging printf, Justus Winter, 2014/11/26
- Re: [PATCH hurd-dde 1/7] Drop superfluous files, Samuel Thibault, 2014/11/26