From patchwork Mon Feb 24 22:42:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Rose X-Patchwork-Id: 1243658 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=UQ8OpLk6; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48RHC86NHnz9sRl for ; Tue, 25 Feb 2020 09:42:59 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id BD06C20766; Mon, 24 Feb 2020 22:42:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xkRZQxgyUny5; Mon, 24 Feb 2020 22:42:53 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by silver.osuosl.org (Postfix) with ESMTP id 35B0F20409; Mon, 24 Feb 2020 22:42:53 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 202DDC1D89; Mon, 24 Feb 2020 22:42:53 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id C8EFCC0177 for ; Mon, 24 Feb 2020 22:42:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id B59878733B for ; Mon, 24 Feb 2020 22:42:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E-GSjC5kssZ4 for ; Mon, 24 Feb 2020 22:42:51 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by hemlock.osuosl.org (Postfix) with ESMTPS id 4D33886DEA for ; Mon, 24 Feb 2020 22:42:51 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id g6so4633625plp.6 for ; Mon, 24 Feb 2020 14:42:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yidHBtQ3QR8A1+TgJf3JwNMrQ74ZZvEtiMsK+WJKgb8=; b=UQ8OpLk693g+o5lBLPJpM2tpznFUoLtjbEH7b1BhArWvEuRVvUudCaxWkFDneR713K NdE8OBHGPlnVsGsyZFnqIPF0Yd3Bfg9kNcYYHpM1pFDpHol9SlWuCooQ118pDGd8iC0a eRHoDkfxziwim2SOyyulgAVWfjOYBkhbgXua1O6kEXG3FGT4r1bsHALljIZ2XtunHgJi +UlQF8uScsAWOqKpTE5Ddp4erNH1dT51fuGbg6YWpAtkbMhMXfLAy4FIxv5LQPdE3NcC Mn3UCyEUeeaCMRmsRoijm4yXyMiu9TLreaob36hsVmgwI+XhX1dMx4MJpwd00Ni0K2yM ykDQ== 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=yidHBtQ3QR8A1+TgJf3JwNMrQ74ZZvEtiMsK+WJKgb8=; b=iPfJm6iEqy2SU3dRNGxTIVUyts9zhdL/3vCMikiMSQtVyd3hQRqYox7QckIjoJP1+U 7qxmlVHInL2k4BIzzruLCLYHhWqsyPNC+AfyZgXfK9Z3ZGHX6jGIbvHua6r8dCbdrNYm 9tUeww1KbDCQF1DsuH4JDBhj7Y/LkIKgUUW30dt1kFdox0TG+4USHQw5/85ywUuJSiO2 ZDyqsj6LAEYja4hNOBOG+U/bWTirH+12h1rATyPpXa27jFkLNC/eriJjb5MBcjpUFtSa /wDtjoErnsuAzHD1uvAO1IfoxXTPLAiaNxzmtFPhQS9F9esKz33lKMOD3ESkQYFkq/nK sJ+g== X-Gm-Message-State: APjAAAUPYXjRTzeZPdeEVlnJVEVWbR9WkOr3qizdtzKFUjyZQ9i6g6+B hyGiP7sr0Es8X9b0AvIDlDpBBP/DXhg= X-Google-Smtp-Source: APXvYqz3ZxcJM8v8Qeks6ln3kxbczBOTm3SuG3k7vnmjpUwx1Nn80AEGb9mXXrlXg3HMHeZmgup5WQ== X-Received: by 2002:a17:90b:3011:: with SMTP id hg17mr1508657pjb.90.1582584170602; Mon, 24 Feb 2020 14:42:50 -0800 (PST) Received: from gizo.domain (97-115-113-182.ptld.qwest.net. [97.115.113.182]) by smtp.gmail.com with ESMTPSA id 133sm14320705pfy.14.2020.02.24.14.42.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Feb 2020 14:42:50 -0800 (PST) From: Greg Rose To: dev@openvswitch.org Date: Mon, 24 Feb 2020 14:42:31 -0800 Message-Id: <1582584158-16348-2-git-send-email-gvrose8192@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1582584158-16348-1-git-send-email-gvrose8192@gmail.com> References: <1582584158-16348-1-git-send-email-gvrose8192@gmail.com> Subject: [ovs-dev] [PATCH 2/9] compat: Fix up changes to inet frags in 5.1+ X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Since Linux kernel release 5.1 the fragments field of the inet_frag_queue structure is removed and now only the rb_fragments structure with an rb_node pointer is used for both ipv4 and ipv6. In addition, the atomic_sub and atomic_add functions are replaced with their equivalent long counterparts. Signed-off-by: Greg Rose --- acinclude.m4 | 2 ++ datapath/linux/compat/include/net/inet_frag.h | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index db64267..cad76c7 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1067,6 +1067,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ [OVS_DEFINE([HAVE_RBTREE_RB_LINK_NODE_RCU])]) OVS_GREP_IFELSE([$KSRC/include/net/dst_ops.h], [bool confirm_neigh], [OVS_DEFINE([HAVE_DST_OPS_CONFIRM_NEIGH])]) + OVS_GREP_IFELSE([$KSRC/include/net/inet_frag.h], [fqdir], + [OVS_DEFINE([HAVE_INET_FRAG_FQDIR])]) if cmp -s datapath/linux/kcompat.h.new \ datapath/linux/kcompat.h >/dev/null 2>&1; then diff --git a/datapath/linux/compat/include/net/inet_frag.h b/datapath/linux/compat/include/net/inet_frag.h index 124c8be..e3c6df3 100644 --- a/datapath/linux/compat/include/net/inet_frag.h +++ b/datapath/linux/compat/include/net/inet_frag.h @@ -18,7 +18,16 @@ static inline bool inet_frag_evicting(struct inet_frag_queue *q) #ifdef HAVE_INET_FRAG_QUEUE_WITH_LIST_EVICTOR return !hlist_unhashed(&q->list_evictor); #else +/* + * We can't use acinclude.m4 to check this as the field 'fragments' + * also matches 'rb_fragments'. + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0) return (q_flags(q) & INET_FRAG_FIRST_IN) && q->fragments != NULL; +#else + return (q_flags(q) & INET_FRAG_FIRST_IN) && + q->rb_fragments.rb_node != NULL; +#endif #endif /* HAVE_INET_FRAG_QUEUE_WITH_LIST_EVICTOR */ } #endif /* HAVE_INET_FRAG_EVICTING */ @@ -29,6 +38,10 @@ static inline bool inet_frag_evicting(struct inet_frag_queue *q) #define inet_frag_lru_move(q) #endif +#ifdef HAVE_INET_FRAG_FQDIR +#define netns_frags fqdir +#endif + #ifndef HAVE_SUB_FRAG_MEM_LIMIT_ARG_STRUCT_NETNS_FRAGS #ifdef HAVE_FRAG_PERCPU_COUNTER_BATCH static inline void rpl_sub_frag_mem_limit(struct netns_frags *nf, int i) @@ -45,13 +58,21 @@ static inline void rpl_add_frag_mem_limit(struct netns_frags *nf, int i) #else /* !frag_percpu_counter_batch */ static inline void rpl_sub_frag_mem_limit(struct netns_frags *nf, int i) { +#ifdef HAVE_INET_FRAG_FQDIR + atomic_long_sub(i, &nf->mem); +#else atomic_sub(i, &nf->mem); +#endif } #define sub_frag_mem_limit rpl_sub_frag_mem_limit static inline void rpl_add_frag_mem_limit(struct netns_frags *nf, int i) { +#ifdef HAVE_INET_FRAG_FQDIR + atomic_long_add(i, &nf->mem); +#else atomic_add(i, &nf->mem); +#endif } #define add_frag_mem_limit rpl_add_frag_mem_limit #endif /* frag_percpu_counter_batch */