* 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