qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v1 08/14] net: introduce lock to protect NetQueu


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v1 08/14] net: introduce lock to protect NetQueue
Date: Tue, 21 May 2013 16:04:03 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, May 07, 2013 at 01:46:56PM +0800, Liu Ping Fan wrote:
> From: Liu Ping Fan <address@hidden>
> 
> NetQueue will be accessed by nc and its peers at the same time,
> need lock to protect it.
> 
> Signed-off-by: Liu Ping Fan <address@hidden>
> ---
>  net/queue.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/net/queue.c b/net/queue.c
> index 859d02a..2856c1d 100644
> --- a/net/queue.c
> +++ b/net/queue.c
> @@ -53,6 +53,7 @@ struct NetQueue {
>      uint32_t nq_maxlen;
>      uint32_t nq_count;
>  
> +    QemuMutex lock;
>      QTAILQ_HEAD(packets, NetPacket) packets;
>  
>      unsigned delivering : 1;
> @@ -68,6 +69,7 @@ NetQueue *qemu_new_net_queue(void *opaque)
>      queue->nq_maxlen = 10000;
>      queue->nq_count = 0;
>  
> +    qemu_mutex_init(&queue->lock);
>      QTAILQ_INIT(&queue->packets);
>  
>      queue->delivering = 0;
> @@ -107,7 +109,9 @@ static void qemu_net_queue_append(NetQueue *queue,
>      memcpy(packet->data, buf, size);
>  
>      queue->nq_count++;
> +    qemu_mutex_lock(&queue->lock);
>      QTAILQ_INSERT_TAIL(&queue->packets, packet, entry);
> +    qemu_mutex_unlock(&queue->lock);

nq_count must be protected too.



reply via email to

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