From 639f3f1a2274add4a4d66e2819e424b19751e1b4 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 20 Jun 2008 17:45:23 +0100 Subject: minios: fix add_id_to_freelist(0) add_id_to_freelist(0) would make get_id_from_freelist() always return 0. Signed-off-by: Samuel Thibault --- extras/mini-os/netfront.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'extras/mini-os/netfront.c') diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c index d01ce6927b..3fff0accdd 100644 --- a/extras/mini-os/netfront.c +++ b/extras/mini-os/netfront.c @@ -38,7 +38,7 @@ struct net_buffer { struct netfront_dev { domid_t dom; - unsigned short tx_freelist[NET_TX_RING_SIZE]; + unsigned short tx_freelist[NET_TX_RING_SIZE + 1]; struct semaphore tx_sem; struct net_buffer rx_buffers[NET_RX_RING_SIZE]; @@ -70,14 +70,14 @@ void init_rx_buffers(struct netfront_dev *dev); static inline void add_id_to_freelist(unsigned int id,unsigned short* freelist) { - freelist[id] = freelist[0]; + freelist[id + 1] = freelist[0]; freelist[0] = id; } static inline unsigned short get_id_from_freelist(unsigned short* freelist) { unsigned int id = freelist[0]; - freelist[0] = freelist[id]; + freelist[0] = freelist[id + 1]; return id; } -- cgit v1.2.3