Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754194AbdLDLZ1 (ORCPT ); Mon, 4 Dec 2017 06:25:27 -0500 Received: from szxga02-in.huawei.com ([45.249.212.188]:2484 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752340AbdLDLZ0 (ORCPT ); Mon, 4 Dec 2017 06:25:26 -0500 From: wangyunjian To: Jason Wang , "linux-kernel@vger.kernel.org" CC: "mst@redhat.com" , caihe Subject: RE: [PATCH net] virtio_net: fix return value check in receive_mergeable() Thread-Topic: [PATCH net] virtio_net: fix return value check in receive_mergeable() Thread-Index: AQHTbMV9GMsutNYjvUWej/cx5Ldm+qMyPkUAgADJh0A= Date: Mon, 4 Dec 2017 11:25:13 +0000 Message-ID: <34EFBCA9F01B0748BEB6B629CE643AE60C6C0F85@dggemm513-mbx.china.huawei.com> References: <1512367339-19000-1-git-send-email-wangyunjian@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.177.24.66] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id vB4BPVR0008301 Content-Length: 1572 Lines: 53 > -----Original Message----- > From: Jason Wang [mailto:jasowang@redhat.com] > Sent: Monday, December 04, 2017 3:10 PM > To: wangyunjian ; linux- > kernel@vger.kernel.org > Cc: mst@redhat.com; caihe > Subject: Re: [PATCH net] virtio_net: fix return value check in > receive_mergeable() > > > > On 2017年12月04日 14:02, wangyunjian wrote: > > From: Yunjian Wang > > > > The function virtqueue_get_buf_ctx() could return NULL, the return > > value 'buf' need to be checked with NULL, not value 'ctx'. > > > > Signed-off-by: Yunjian Wang > > --- > > drivers/net/virtio_net.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > index 19a985e..559b215 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct > net_device *dev, > > int num_skb_frags; > > > > buf = virtqueue_get_buf_ctx(rq->vq, &len, &ctx); > > - if (unlikely(!ctx)) { > > + if (unlikely(!buf)) { > > pr_debug("%s: rx error: %d buffers out of %d > missing\n", > > dev->name, num_buf, > > virtio16_to_cpu(vi->vdev, > > Hi: > > The path looks good but I'm not sure this is a real fix since we add > data and ctx simultaneously in virtqueue_add_inbuf_ctx(). > > Any bad result you see without this patch? > Now no problem has been found yet, and I found it when reviewing the code. Thanks > Thanks