aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/netfront.c
diff options
context:
space:
mode:
Diffstat (limited to 'extras/mini-os/netfront.c')
-rw-r--r--extras/mini-os/netfront.c6
1 files changed, 3 insertions, 3 deletions
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;
}