From: Fam Zheng <famz@redhat.com>
To: Wen Congyang <wency@cn.fujitsu.com>
Cc: jasowang@redhat.com, stefano.stabellini@eu.citrix.com,
qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Chen Gang <gang.chen.5i5j@gmail.com>
Subject: Re: [Qemu-devel] [PATCH for-2.4 v2] xen: Drop net_rx_ok
Date: Tue, 28 Jul 2015 17:50:52 +0800 [thread overview]
Message-ID: <20150728095052.GA29631@ad.nay.redhat.com> (raw)
In-Reply-To: <55B74C3D.6030102@cn.fujitsu.com>
On Tue, 07/28 17:32, Wen Congyang wrote:
> On 07/28/2015 05:25 PM, Fam Zheng wrote:
> > Let net_rx_packet() (which checks the same conditions) drops the packet
> > if the device is not ready. Drop net_xen_info.can_receive and update the
> > return value for the buffer full case.
> >
> > We rely on the qemu_flush_queued_packets() in net_event() to wake up
> > the peer when the buffer becomes available again.
> >
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> >
> > ---
> >
> > v2:
> > Fix return value of net_rx_packet to keep the semantics when ring
> > buffer is full. [Stefan]
> > Update commit message accordingly.
> > ---
> > hw/net/xen_nic.c | 24 +-----------------------
> > 1 file changed, 1 insertion(+), 23 deletions(-)
> >
> > diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
> > index 19ecfc4..acb7e2e 100644
> > --- a/hw/net/xen_nic.c
> > +++ b/hw/net/xen_nic.c
> > @@ -234,27 +234,6 @@ static void net_rx_response(struct XenNetDev *netdev,
> >
> > #define NET_IP_ALIGN 2
> >
> > -static int net_rx_ok(NetClientState *nc)
> > -{
> > - struct XenNetDev *netdev = qemu_get_nic_opaque(nc);
> > - RING_IDX rc, rp;
> > -
> > - if (netdev->xendev.be_state != XenbusStateConnected) {
> > - return 0;
> > - }
> > -
> > - rc = netdev->rx_ring.req_cons;
> > - rp = netdev->rx_ring.sring->req_prod;
> > - xen_rmb();
> > -
> > - if (rc == rp || RING_REQUEST_CONS_OVERFLOW(&netdev->rx_ring, rc)) {
> > - xen_be_printf(&netdev->xendev, 2, "%s: no rx buffers (%d/%d)\n",
> > - __FUNCTION__, rc, rp);
> > - return 0;
> > - }
> > - return 1;
> > -}
> > -
> > static ssize_t net_rx_packet(NetClientState *nc, const uint8_t *buf, size_t size)
> > {
> > struct XenNetDev *netdev = qemu_get_nic_opaque(nc);
> > @@ -272,7 +251,7 @@ static ssize_t net_rx_packet(NetClientState *nc, const uint8_t *buf, size_t size
> >
> > if (rc == rp || RING_REQUEST_CONS_OVERFLOW(&netdev->rx_ring, rc)) {
> > xen_be_printf(&netdev->xendev, 2, "no buffer, drop packet\n");
>
> IIUC, 'return 0' means that the packet will be queued in the incoming queue. So the log should
> be changed too.
You're right, will fix.
Fam
prev parent reply other threads:[~2015-07-28 9:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-28 9:25 [Qemu-devel] [PATCH for-2.4 v2] xen: Drop net_rx_ok Fam Zheng
2015-07-28 9:32 ` Wen Congyang
2015-07-28 9:50 ` Fam Zheng [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150728095052.GA29631@ad.nay.redhat.com \
--to=famz@redhat.com \
--cc=gang.chen.5i5j@gmail.com \
--cc=jasowang@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wency@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.