From patchwork Thu Jun 27 03:38:43 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: pingfan liu X-Patchwork-Id: 254939 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id BAE0C2C0040 for ; Thu, 27 Jun 2013 13:40:50 +1000 (EST) Received: from localhost ([::1]:36452 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Us34i-0004Qb-LK for incoming@patchwork.ozlabs.org; Wed, 26 Jun 2013 23:40:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Us33q-0003H2-CA for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Us33p-0003xI-Eq for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:54 -0400 Received: from mail-ie0-x233.google.com ([2607:f8b0:4001:c03::233]:38593) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Us33p-0003vs-9L for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:53 -0400 Received: by mail-ie0-f179.google.com with SMTP id c10so549534ieb.24 for ; Wed, 26 Jun 2013 20:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=I4xhHl1pi31dc1lCepiSeL+hfdG+ogSFOx4dsUyOjUU=; b=bKpM3JMMr8FgW/Ajt7vIQoL9ZOrQUtdBfC6ipj2WzmDc7war1v/zP6rTdAUJoje7ag waZSiSVevKDk615feHuIAQcA511SQYYSCHOEXcg61m/cfpo3eo4yffkJXMj7PfW+chpL 0ozU3rCFZmd4pZf2OXlsmGMNxHyLmMOF3x4yGnUqQ7Y2Tq1lkguEqbOHbxQQZmD/Qxig LFX9sInvZqCSYawDEgJ0wahT8RIkEAGqitrgGv0lgGuLjCIhTnl5gEYQSSYe8l7MxW2c /1uyBZcxcIeGpBjkOQmqHg6Bvl7YOFDputL/6o1AhaRWMoBblPUi2uy8IIpUgN85vKmT wBZQ== X-Received: by 10.50.4.69 with SMTP id i5mr13882839igi.16.1372304392589; Wed, 26 Jun 2013 20:39:52 -0700 (PDT) Received: from localhost ([202.108.130.138]) by mx.google.com with ESMTPSA id p10sm11305062igx.4.2013.06.26.20.39.49 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 26 Jun 2013 20:39:51 -0700 (PDT) From: Liu Ping Fan To: qemu-devel@nongnu.org Date: Thu, 27 Jun 2013 11:38:43 +0800 Message-Id: <1372304329-6931-2-git-send-email-pingfank@linux.vnet.ibm.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1372304329-6931-1-git-send-email-pingfank@linux.vnet.ibm.com> References: <1372304329-6931-1-git-send-email-pingfank@linux.vnet.ibm.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4001:c03::233 Cc: mdroth , Stefan Hajnoczi Subject: [Qemu-devel] [PATCH v3 1/7] net: force NetQue opaque to be NetClientState X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org qemu_net_client_setup() is the only user of qemu_new_net_queue(), which will pass in NetClientState. By forcing it be a NetClientState, we can ref/unref NetQueue's owner Signed-off-by: Liu Ping Fan --- include/net/queue.h | 2 +- net/queue.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/net/queue.h b/include/net/queue.h index fc02b33..1d9e4c3 100644 --- a/include/net/queue.h +++ b/include/net/queue.h @@ -34,7 +34,7 @@ typedef void (NetPacketSent) (NetClientState *sender, ssize_t ret); #define QEMU_NET_PACKET_FLAG_NONE 0 #define QEMU_NET_PACKET_FLAG_RAW (1<<0) -NetQueue *qemu_new_net_queue(void *opaque); +NetQueue *qemu_new_net_queue(NetClientState *nc); void qemu_del_net_queue(NetQueue *queue); diff --git a/net/queue.c b/net/queue.c index 859d02a..1937345 100644 --- a/net/queue.c +++ b/net/queue.c @@ -49,7 +49,7 @@ struct NetPacket { }; struct NetQueue { - void *opaque; + NetClientState *nc; uint32_t nq_maxlen; uint32_t nq_count; @@ -58,13 +58,13 @@ struct NetQueue { unsigned delivering : 1; }; -NetQueue *qemu_new_net_queue(void *opaque) +NetQueue *qemu_new_net_queue(NetClientState *nc) { NetQueue *queue; queue = g_malloc0(sizeof(NetQueue)); - queue->opaque = opaque; + queue->nc = nc; queue->nq_maxlen = 10000; queue->nq_count = 0; @@ -154,7 +154,7 @@ static ssize_t qemu_net_queue_deliver(NetQueue *queue, ssize_t ret = -1; queue->delivering = 1; - ret = qemu_deliver_packet(sender, flags, data, size, queue->opaque); + ret = qemu_deliver_packet(sender, flags, data, size, queue->nc); queue->delivering = 0; return ret; @@ -169,7 +169,7 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue, ssize_t ret = -1; queue->delivering = 1; - ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->opaque); + ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->nc); queue->delivering = 0; return ret;