From patchwork Sat Feb 4 23:25:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 724170 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vG8x60wZ9z9s1y for ; Sun, 5 Feb 2017 10:25:46 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="tEX4IRT3"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751847AbdBDXZp (ORCPT ); Sat, 4 Feb 2017 18:25:45 -0500 Received: from mail-pg0-f48.google.com ([74.125.83.48]:33915 "EHLO mail-pg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751821AbdBDXZn (ORCPT ); Sat, 4 Feb 2017 18:25:43 -0500 Received: by mail-pg0-f48.google.com with SMTP id 14so17061637pgg.1 for ; Sat, 04 Feb 2017 15:25:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CHq0VbrTvAtGQnVP+QzV/wyVJ62h8GwE/eCVoFsWAAM=; b=tEX4IRT3Hum4iTnekEjYdSLbIj0NUuJmbAxVN8bWnFQuxgIay/Wst9z622Bs6N0dJa XM0KMULP+U+gIjXubS3oaV2vdXiReMLyIm20W5b3nZ+9Mdi9NoxV3vHxX1RcGotX9F5q KECaqN3n+ntQ9twbtIy5b2dJFW2zC/UGCVsJKnaZPX6YHBbpc3catuw5jf93FsYvDeLC So8fYYkIBMzqUyNiO5iWHgIPD+gDOGTY0kJXg+sYIDWOgqBBPS7fGKZQKmKgZv4I0jJD dvXjNZMqoD63OGviso1281ZlbWsLpzlw99n1av1LWJKfjv2wLhR6bJK+ypBjjf9A/8xi p33A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CHq0VbrTvAtGQnVP+QzV/wyVJ62h8GwE/eCVoFsWAAM=; b=XGIgNvYyAVBHt3lMWumAtUw9e8Q+iKS8V1/n6eUWwXHX6LGjbWpWbemmPQfM+PKGRn N/Hi9VEJqIVY6FkkicN+XvZ7gwfhRl1j41Qlg/M9JxwTPVfGraluQKfmWneaDwyCwPx/ d6LgyofSuRxmxfJs+9GX9Eu0F6r/f3o333N+D/uYX/6ByNIEmB3/pRliqbGLqlgMr3fd nPCZtzR8gHCfnhwPCrzrKfnoGlNtEgLdXDik9Gecen2xIax04SOjzFgohPR3BYZjpCwS J5NwBhXJKtA9pfNMiU+BZHmc3AXsdYXIBQI0cQKqgwiz50o5nTr7MTa5GDhu6sqU/NQV +qpw== X-Gm-Message-State: AIkVDXLqxCPUfdFKDO9uTpABhQ6l0XBJLbyf43uEcuNsCoX1m7KRW3YY9p1HAQ8j1+FWHavr X-Received: by 10.84.200.200 with SMTP id u8mr6547458plh.98.1486250732192; Sat, 04 Feb 2017 15:25:32 -0800 (PST) Received: from localhost ([2620:0:1000:3012:d537:7fd4:76bd:9074]) by smtp.gmail.com with ESMTPSA id e13sm78279517pgf.48.2017.02.04.15.25.31 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Sat, 04 Feb 2017 15:25:31 -0800 (PST) From: Eric Dumazet To: "David S . Miller" Cc: netdev , Eric Dumazet , Eric Dumazet Subject: [PATCH v2 net-next 12/12] net: remove __napi_complete() Date: Sat, 4 Feb 2017 15:25:02 -0800 Message-Id: <20170204232502.22361-13-edumazet@google.com> X-Mailer: git-send-email 2.11.0.483.g087da7b7c-goog In-Reply-To: <20170204232502.22361-1-edumazet@google.com> References: <20170204232502.22361-1-edumazet@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org All __napi_complete() callers have been converted to use the more standard napi_complete_done(), we can now remove this NAPI method for good. Signed-off-by: Eric Dumazet --- include/linux/netdevice.h | 1 - net/core/dev.c | 24 +++--------------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 6f18b509fb2f473029561d85646713c149df..014fbe256d55f843b72595e881d646dd5762 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -463,7 +463,6 @@ static inline bool napi_reschedule(struct napi_struct *napi) return false; } -bool __napi_complete(struct napi_struct *n); bool napi_complete_done(struct napi_struct *n, int work_done); /** * napi_complete - NAPI processing complete diff --git a/net/core/dev.c b/net/core/dev.c index 42ba0379575a28525052a36620bfb30d38af..404d2e6d5d3233ad95edee18581276841573 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4883,23 +4883,6 @@ void __napi_schedule_irqoff(struct napi_struct *n) } EXPORT_SYMBOL(__napi_schedule_irqoff); -bool __napi_complete(struct napi_struct *n) -{ - BUG_ON(!test_bit(NAPI_STATE_SCHED, &n->state)); - - /* Some drivers call us directly, instead of calling - * napi_complete_done(). - */ - if (unlikely(test_bit(NAPI_STATE_IN_BUSY_POLL, &n->state))) - return false; - - list_del_init(&n->poll_list); - smp_mb__before_atomic(); - clear_bit(NAPI_STATE_SCHED, &n->state); - return true; -} -EXPORT_SYMBOL(__napi_complete); - bool napi_complete_done(struct napi_struct *n, int work_done) { unsigned long flags; @@ -4926,14 +4909,13 @@ bool napi_complete_done(struct napi_struct *n, int work_done) else napi_gro_flush(n, false); } - if (likely(list_empty(&n->poll_list))) { - WARN_ON_ONCE(!test_and_clear_bit(NAPI_STATE_SCHED, &n->state)); - } else { + if (unlikely(!list_empty(&n->poll_list))) { /* If n->poll_list is not empty, we need to mask irqs */ local_irq_save(flags); - __napi_complete(n); + list_del_init(&n->poll_list); local_irq_restore(flags); } + WARN_ON_ONCE(!test_and_clear_bit(NAPI_STATE_SCHED, &n->state)); return true; } EXPORT_SYMBOL(napi_complete_done);