Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp740310imm; Mon, 9 Jul 2018 09:45:49 -0700 (PDT) X-Google-Smtp-Source: AAOMgpesblhkZduFzNdTHFbuFwR49Js+I+p+3b1pVhqkcIYWRSZGBR0tJtR8ikEhSMrLQ6FVtpWR X-Received: by 2002:a17:902:da4:: with SMTP id 33-v6mr21033075plv.193.1531154748944; Mon, 09 Jul 2018 09:45:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531154748; cv=none; d=google.com; s=arc-20160816; b=PYHh9Tlu1KWr6mODfQhWevxw56yx9ZyfBYwbbH9InA9vNWmS6etvFfCeGTuMZ/jezL pvN+0NK5DjTCSuRUlAKTdP6HTWIK3Pt4uM5oWpbrAELlndKaExeRURApCl88MF4uz5HY GD5RpJnHff5PWWzkCtTgvhCARuojtQ97J8+HjZ1gjuoNvsxm6bPrPc0gdDN5S1KOudNa flu6lpS/v+rKBOjtXqdShgxaOCFIgJvGhIwR2ZGXvj9/4aMEQBlLyc/35iaKdJzwr50V RXyVaCouzUn3XPd/I7wIYU00uRRmvIyrcoC0h0i63RizVjqPdCVOM8eFLZmrkjiWg+oX kISw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:reply-to:message-id:date:subject:cc:to :from:arc-authentication-results; bh=fNOgxBdvOEbXl6gs/EhXqYo52T8FVKohgk+zeXDi8A0=; b=G8GBfYBLkx5tO1R9AknzmSDouXHaTqXaM4ZNgJhUdXNrf4koNpvWA+V2gL8l7sH2el 7I5bYYaWEk9NEK/iZXZazXy8Wn22M5nP98QPXjJ30BOCBIc2WEsjVZ+XjXdmIWlqnt2R 4XHLYB6/Pal5u1wSleb65SabgMwf9cN9+1srVBmJqXp7QVTAhzfQm53tp2Ssq8rQSLga D2Ubij8wMDWRv2fKnW/xmdWuJC4/LrjSm7kzMpheCLD1XqV7SwPyPSVkfxhZ2j53x+BM N8kdJJDi+nl9nk3gaV7jNbCeWT/cp6yxHd8/96glabRhUNM5j4sIrGCHAKrHx/hp2RAX iWUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m3-v6si13811850pgq.319.2018.07.09.09.45.34; Mon, 09 Jul 2018 09:45:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933651AbeGIQog (ORCPT + 99 others); Mon, 9 Jul 2018 12:44:36 -0400 Received: from a2nlsmtp01-03.prod.iad2.secureserver.net ([198.71.225.37]:48928 "EHLO a2nlsmtp01-03.prod.iad2.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932755AbeGIQoe (ORCPT ); Mon, 9 Jul 2018 12:44:34 -0400 Received: from linuxonhyperv2.linuxonhyperv.com ([107.180.71.197]) by : HOSTING RELAY : with SMTP id cZG9friwnIHuScZG9fQ5qv; Mon, 09 Jul 2018 09:43:33 -0700 x-originating-ip: 107.180.71.197 Received: from haiyangz by linuxonhyperv2.linuxonhyperv.com with local (Exim 4.91) (envelope-from ) id 1fcZG9-0001KK-7Z; Mon, 09 Jul 2018 09:43:33 -0700 From: Haiyang Zhang To: davem@davemloft.net, netdev@vger.kernel.org Cc: haiyangz@microsoft.com, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, devel@linuxdriverproject.org, linux-kernel@vger.kernel.org Subject: [PATCH net] hv_netvsc: Fix napi reschedule while receive completion is busy Date: Mon, 9 Jul 2018 16:43:19 +0000 Message-Id: <20180709164319.5058-1-haiyangz@linuxonhyperv.com> X-Mailer: git-send-email 2.17.1 Reply-To: haiyangz@microsoft.com X-CMAE-Envelope: MS4wfOHQ2SEyFCyxYbuYwolLF18kkTSSUxE6dStyPtcpB1e9EsCFRDxBhJHrHccapKviWcktFcvx2NAHOAJkRA1ji//DcKHRF8mq4IgBxI0X+GU7nmwfeRyV PjNgAChrBJG49gdcWBgDA/cuHVoKdHlobdWxRle1U3TIGozjgzG1trhDxWbIeI+tKYVT3KEvdyTPJJrr6QndlPgRa3O41JV9Ct+JitvHwQnroJ8ZFCFxrjTM RvFuwnQpd2iz5EF5LTaoZROC4E2I6fL4xnuFgJ3/DFeDTQTvGKHOgdrijcKLgeEirYiv/ukCu6Slb6EX8Abnu2xdb/0DhCpx0EfbXl/SK3qQgwgAEE6G02Ba ykpFrozoH88xB6SgB9yhsLCc/q2LHYlIJhf7vkC+HOUBo95i5ZvOUbcAjjVWu3umLxX7QVFA1W2ZrPjkZ45ajB7RYJLacJhe3BdHxeTTnJ69szCvhHpnNtUo KPN6OokvLseaPIK0iZzxbpx2Ai/5OPiH5+MHyw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Haiyang Zhang If out ring is full temporarily and receive completion cannot go out, we may still need to reschedule napi if other conditions are met. Otherwise the napi poll might be stopped forever, and cause network disconnect. Fixes: 7426b1a51803 ("netvsc: optimize receive completions") Signed-off-by: Haiyang Zhang --- drivers/net/hyperv/netvsc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 8e9d0ee1572b..caaf5054f446 100644 --- a/drivers/net/hyperv/netvsc.c +++ b/drivers/net/hyperv/netvsc.c @@ -1285,14 +1285,14 @@ int netvsc_poll(struct napi_struct *napi, int budget) nvchan->desc = hv_pkt_iter_next(channel, nvchan->desc); } - /* If send of pending receive completions suceeded - * and did not exhaust NAPI budget this time + send_recv_completions(ndev, net_device, nvchan); + + /* If it did not exhaust NAPI budget this time * and not doing busy poll * then re-enable host interrupts * and reschedule if ring is not empty. */ - if (send_recv_completions(ndev, net_device, nvchan) == 0 && - work_done < budget && + if (work_done < budget && napi_complete_done(napi, work_done) && hv_end_read(&channel->inbound) && napi_schedule_prep(napi)) { -- 2.17.1