From nobody Wed May 8 18:32:44 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1930700pid; Tue, 19 Apr 2022 21:25:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwf2FFUZZKnI/ajP7iw4uArOJXefI4IXHdZPiSLQZoyyD8wHwhOnmc6TPgMlKZpKGhop9cJ X-Received: by 2002:a17:902:d5c3:b0:154:c472:de80 with SMTP id g3-20020a170902d5c300b00154c472de80mr18764955plh.87.1650428736532; Tue, 19 Apr 2022 21:25:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650428736; cv=none; d=google.com; s=arc-20160816; b=Esttxky9r+UueWN5FK0DboHreBq7l01/cqEjtDEzkVeEggYi4iWpchaA/AO8210xo7 ++KsBdmPRLtpYp0RTbR3cAiv/33opfeSgy+uPUfC5swewlISuhqwZCbidchbRlCUVFx8 06PvFoVRsImWn185Y77kr9v3XqBPjrJr6Cc/vUFthfMvjmr3FDXgPfcmJqIIxh0bSXzr JHxpjF6ZOzsL9faKTx0AjKRMdxSB8hIe11b4c+2Ke3SJxse3C8Xf2gSe4IIM32EOwlkb 9fRKP+VEHiMX+oXd6nJAle7vZZfN64aDOsQSxoUMJziN/EB1eTiyRSdgr2HYQpyxTEfi XDEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=/M0Tadm5jEJKvu2B5gs+WSbIlp1MAYjBQDRZQ+BhulI=; b=G1BV0YLGWwJXNv3NCyPYCmUdm8LuUmNrxRj0ls7vuOK9+iN1yiUg6tqsazYV4Dls33 G8pry5PNCG6dGP51E7JJei2pvy+h9H8EjfV/b0s4aNiCf/fDb8bYF7LaOeEUaMi74o84 2V9csC/6C838JUyj7dharMD5aii0/Y2O7Q7ZUlMD4XixLTc16ga/7F5y8woI1w1giEkk me40bjXbmevo12lYgSEmAzc6NlJJtImGHwhfGJF561Uo7YDTo4vyUMINA7y+dd9rCcU8 YQvZqW6zKXxeSyxWu4wODkuNePhHHZKWkEFJJdTQmahNKYWtRC09JPeJ8xMznA4KJeuY dbPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bl4rFlzF; spf=pass (google.com: domain of mptcp+bounces-4783-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4783-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id t184-20020a6381c1000000b003a158337b8fsi1122922pgd.3.2022.04.19.21.25.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:25:36 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4783-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bl4rFlzF; spf=pass (google.com: domain of mptcp+bounces-4783-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4783-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 236B93E0EC2 for ; Wed, 20 Apr 2022 04:25:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EA8FC110B; Wed, 20 Apr 2022 04:25:33 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31FEE10ED for ; Wed, 20 Apr 2022 04:25:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650428732; x=1681964732; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=Bt4QjmiuKZPElaIRgLgCFqXGO4QGOA+unANuA78WkZc=; b=bl4rFlzF2vlQgG0IK4tYWNxOJ5tZGrLyeqMRhaky6tPFg/ksnkjCj9AK F/xHdpXkYplnTGqdrpDenCzuxhTauf9tRyRLx7/J0WirIxzxIJ4u17Oxl QMU1Ui7pVmWVgJU+dvTftbyaCFAwquXwszebQ+FXSS3tpiRzCTjIie4Al tWs2lbqyrjss//S5zhjOs3KsW16ZetPtSKSdKvfBmH0ldGGQIfwX3G4Oj JgnAYNioX9yC4VsnbSJjkOt/+2WCgQmnXN2nK5SJrPScZ7ZCx0dd6rK4M VdxF0QqO6rZsAWqCNqr0866qTWkUdfNGDReEBpXCQJrWtjQj5GcN3qT20 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="251242270" X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="251242270" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="529584147" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next v2 1/3] Squash-to: mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE Date: Wed, 20 Apr 2022 00:25:22 -0400 Message-Id: <20220420042524.2268380-2-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420042524.2268380-1-kishen.maloor@intel.com> References: <20220420042524.2268380-1-kishen.maloor@intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Kishen Maloor --- net/mptcp/pm_userspace.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index fce61530fe9e..a2de579ebd6d 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -126,12 +126,12 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct= genl_info *info) struct nlattr *addr =3D info->attrs[MPTCP_PM_ATTR_ADDR]; struct mptcp_pm_addr_entry addr_val; struct mptcp_sock *msk; + int err =3D -EINVAL; u32 token_val; - int err; =20 if (!addr || !token) { GENL_SET_ERR_MSG(info, "missing required inputs"); - return -EINVAL; + return err; } =20 token_val =3D nla_get_u32(token); @@ -139,29 +139,29 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct= genl_info *info) msk =3D mptcp_token_get_sock(sock_net(skb->sk), token_val); if (!msk) { NL_SET_ERR_MSG_ATTR(info->extack, token, "invalid token"); - return -EINVAL; + return err; } =20 if (!mptcp_pm_is_userspace(msk)) { GENL_SET_ERR_MSG(info, "invalid request; userspace PM not selected"); - return -EINVAL; + goto announce_err; } =20 err =3D mptcp_pm_parse_entry(addr, info, true, &addr_val); if (err < 0) { GENL_SET_ERR_MSG(info, "error parsing local address"); - return err; + goto announce_err; } =20 if (addr_val.addr.id =3D=3D 0 || !(addr_val.flags & MPTCP_PM_ADDR_FLAG_SI= GNAL)) { GENL_SET_ERR_MSG(info, "invalid addr id or flags"); - return -EINVAL; + goto announce_err; } =20 err =3D mptcp_userspace_pm_append_new_local_addr(msk, &addr_val); if (err < 0) { GENL_SET_ERR_MSG(info, "did not match address and id"); - return err; + goto announce_err; } =20 lock_sock((struct sock *)msk); @@ -175,7 +175,10 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct = genl_info *info) spin_unlock_bh(&msk->pm.lock); release_sock((struct sock *)msk); =20 - return 0; + err =3D 0; + announce_err: + sock_put((struct sock *)msk); + return err; } =20 int mptcp_nl_cmd_remove(struct sk_buff *skb, struct genl_info *info) --=20 2.31.1 From nobody Wed May 8 18:32:44 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1930691pid; Tue, 19 Apr 2022 21:25:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxGIW5jfjfOo3J4+cahWrIx+U8UVlJ8/+mTJMJfJjfG0769S3yy2QNSl2itYbHscGiw//gc X-Received: by 2002:a63:cf4d:0:b0:399:40fc:addf with SMTP id b13-20020a63cf4d000000b0039940fcaddfmr17476179pgj.416.1650428734215; Tue, 19 Apr 2022 21:25:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650428734; cv=none; d=google.com; s=arc-20160816; b=aaktA61qzEaP5tyTsZCpds2wip0LFBFYtL+vTZePhdy/fXUPu1BuT/Fqv1lG5Ck+KD dLoLmHkaLZXzLzBSruBVDF6GTiGtvk80Bay63jWhuXPH2LRmKtJTTx90sjsSa2Yd976d 4NGACW0lUbZQhY3NSs5uP8I/jnQRnqCKkzYYD3ozq46R7e1DrjLOr7vL3lMUll3lKvsy p6XWeKKPd4naOIDH9YOZ2neqq1+iE9lGqhEQ7plk+qfOzqk0B9t7BFK3B9Cbkfz+lnEL SHJDhhuTKit/LSnwEzxRSet+rGryx5zpAe96CyjSg5L3UpLq4fTYHHToNC1zFl8QRXxP KjHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=Qa22KHnr2btriiQOpksqcOX9dWe2nQsMcDB2MTSraxU=; b=VLNdXwlZqLJmV49kbzmICxlqjoIYPCM4anISTgHDel1/co13D1vTNxOktnE6JGqYhe d9UA9mnbmiX4YauswQM+RcROJOLkLTLXMSZpZR44AzFS6WlXQo2YHZxIXR/bGTsL+J2j KV+PtD5bpeSqrKwezbOGhO7RaLh6uHaj2oiFJouwORRhbZDaI1Mhb3OXjjVR9Eg8J4dO BsUNYCPxkpbn5jBIwpf2e1D2NCW4NccIVOex+W/ppIkrito21clC9VJmX6r9aixi51T3 gqBpZlDBJMFcoE76UOMvmQjUrN6hTq3hm/nmJpseDd2wsT5TxWSjVJmMUFrbGhXXWDVr xu5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="VyH/zWlt"; spf=pass (google.com: domain of mptcp+bounces-4781-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4781-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id kb8-20020a17090ae7c800b001d2c6c93948si1303276pjb.80.2022.04.19.21.25.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:25:34 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4781-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="VyH/zWlt"; spf=pass (google.com: domain of mptcp+bounces-4781-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4781-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 329D82808F8 for ; Wed, 20 Apr 2022 04:25:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ED1D01109; Wed, 20 Apr 2022 04:25:31 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9034710ED for ; Wed, 20 Apr 2022 04:25:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650428729; x=1681964729; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=r8oISTE1yPoUIpDSwXE9J8a4R8amCYca23/2wVOMr4c=; b=VyH/zWlt4u85Gx7ouju/J3m0j6XoDZaY95zecx58kgPthT42bD8fq1Gl 18+9ggkOMCrOvznVS1ujqGrHBmMqBqwK142snPBjM7CEQbjqO0TGxiRW8 MpTyVHio7pH0a5T7CsfbyuQVdm935c/S0uCIjP434GlAMGdKwIDsmER+b 6V2xyUZv3v6ouy2/TGeyF4BAVzjXEHKmZmnDBHbmoFhbn65R1x197gz0E ZeDUAcQ+p4/EojIP6exVHrqawxoLNaiXKYVGdLithTWl8CQE14mFBnGZO uZx92G4OJ30iCUSaZ7VZ80d9siArEQdn7p1Uhkdx3oLR+tR+w9hyA8nXq g==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="251242271" X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="251242271" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="529584150" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next v2 2/3] Squash-to: mptcp: netlink: Add MPTCP_PM_CMD_REMOVE Date: Wed, 20 Apr 2022 00:25:23 -0400 Message-Id: <20220420042524.2268380-3-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420042524.2268380-1-kishen.maloor@intel.com> References: <20220420042524.2268380-1-kishen.maloor@intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Kishen Maloor --- net/mptcp/pm_userspace.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index a2de579ebd6d..bd8b692c60c4 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -189,12 +189,13 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct g= enl_info *info) struct mptcp_pm_addr_entry *entry; struct mptcp_sock *msk; LIST_HEAD(free_list); + int err =3D -EINVAL; u32 token_val; u8 id_val; =20 if (!id || !token) { GENL_SET_ERR_MSG(info, "missing required inputs"); - return -EINVAL; + return err; } =20 id_val =3D nla_get_u8(id); @@ -203,12 +204,12 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct g= enl_info *info) msk =3D mptcp_token_get_sock(sock_net(skb->sk), token_val); if (!msk) { NL_SET_ERR_MSG_ATTR(info->extack, token, "invalid token"); - return -EINVAL; + return err; } =20 if (!mptcp_pm_is_userspace(msk)) { GENL_SET_ERR_MSG(info, "invalid request; userspace PM not selected"); - return -EINVAL; + goto remove_err; } =20 lock_sock((struct sock *)msk); @@ -223,7 +224,7 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct gen= l_info *info) if (!match) { GENL_SET_ERR_MSG(info, "address with specified id not found"); release_sock((struct sock *)msk); - return -EINVAL; + goto remove_err; } =20 list_move(&match->list, &free_list); @@ -235,7 +236,11 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct ge= nl_info *info) list_for_each_entry_safe(match, entry, &free_list, list) { sock_kfree_s((struct sock *)msk, match, sizeof(*match)); } - return 0; + + err =3D 0; + remove_err: + sock_put((struct sock *)msk); + return err; } =20 int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info) --=20 2.31.1 From nobody Wed May 8 18:32:44 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1930715pid; Tue, 19 Apr 2022 21:25:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1p7ntw1N+mttLopNveLu88qxH7q6oY1SbbYA7GRIJ0nmkRZQuwH95b0Ff94UlSJLto61Z X-Received: by 2002:a63:e709:0:b0:3a9:f988:c595 with SMTP id b9-20020a63e709000000b003a9f988c595mr11654489pgi.435.1650428737917; Tue, 19 Apr 2022 21:25:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650428737; cv=none; d=google.com; s=arc-20160816; b=VfWWDhDZ/ex0rdL2AK7NAWiZYpiiXPmeF31fX7G958MPyTGuzxsY/PTGjzsq/1T3/y mFAMEIuuO6QGbmaieY1KXLPduEHr+plQoXb2uqCAyZJTeIqL71qC0bn+T8qZxvfW8lzc b2UwYhKX/iSHvjg75M1yAcnS72Gt7TJV1BI/RtOcXWV/p5w0Ky3zmD8QzZzV7u2Ddg3i ExDxA5+GImUth9hiA+xE38psUf9wemRHTrLT/53bfiV1LOkHkmlppKptCDlWEcskaraW 51QqNcWqiZBX8xOaZit5lZT6/4aHZ8V0gFYbEYxjsvL3YQLMCW4cqlgQa0kafkPvZwKR 3Vjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=DgAnWkpJDPmILqdcmbal+GAol7liRgIpUXaTqf3NQq8=; b=nxc+2N+Pbz6U7mVzxNttAgJ5Im8R9kqj6bLnguipwcfZRfFDTdqvzQ0Zm0eEDzAgEI wX1QH4ePcIyMbC0zbuoYiebECAz3u1M/EmESokWD5+J85rRCAVpbS7Vb3lDQZfQvfXN+ bWn9pPteDFCaenEe5OQbjFT+AlSqKfgBzcMY5gGQsnkfJCZGnPkzFb/+4KgWhczPBtkK jlhJqZui3xEmxUa+V/o1tkyk+5fYTUzgitm1QwjLcyXgghh3J3E6Cw4yPEVKURcZktNh WuIoREVl313P1Xi2vjrzNnP8ZU5ZyXKjL/giAPupJkFLPmz1zoP6B+fk9WByCLVaqWN1 voHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=OH9vwW6s; spf=pass (google.com: domain of mptcp+bounces-4784-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4784-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id r16-20020a634410000000b003816043f0e2si1234713pga.727.2022.04.19.21.25.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 21:25:37 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4784-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=OH9vwW6s; spf=pass (google.com: domain of mptcp+bounces-4784-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4784-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 815DC28099B for ; Wed, 20 Apr 2022 04:25:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 111D210ED; Wed, 20 Apr 2022 04:25:36 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC8751108 for ; Wed, 20 Apr 2022 04:25:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650428733; x=1681964733; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=P9lLQkHUVXwMmLl6op3E1HDbII4lbKp97MkELS5AnYA=; b=OH9vwW6sCDD7IX1/gWaUUtPNLIr5yQZVHeVKDQBCeRoUoXzdmFvF6Jq4 eCNUXoH6EaTdm7+0mmG+wHswQ9labG5SOv6v3HmrrBepONWOEGgy9kXhE 89/vId05pkmno55XncbelGijSmouj/zdW/UcUtOCRqpKMW5FFYveNybps bXmqu4guxdgxtyjwXCaF7i24DmIBPD/vZF4GvC345OTzE0r3k9Bbw0jza wm30sujtBzdGjB2KcAo/IeMaHMhZJBiNb+KfhFls7zewAOiLBiEHqv9JH Mqmz5hiyKWq7jXd9hbATSDl6/+URC+4Yq1eCS/X4rDVZvt3rOCm4Rft3N A==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="251242272" X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="251242272" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 X-IronPort-AV: E=Sophos;i="5.90,274,1643702400"; d="scan'208";a="529584152" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 21:25:28 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next v2 3/3] Squash-to: mptcp: netlink: allow userspace-driven subflow establishment Date: Wed, 20 Apr 2022 00:25:24 -0400 Message-Id: <20220420042524.2268380-4-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220420042524.2268380-1-kishen.maloor@intel.com> References: <20220420042524.2268380-1-kishen.maloor@intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Kishen Maloor --- net/mptcp/pm_userspace.c | 59 ++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index bd8b692c60c4..f56378e4f597 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -251,13 +251,13 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struc= t genl_info *info) struct mptcp_addr_info addr_r; struct mptcp_addr_info addr_l; struct mptcp_sock *msk; + int err =3D -EINVAL; struct sock *sk; u32 token_val; - int ret; =20 if (!laddr || !raddr || !token) { GENL_SET_ERR_MSG(info, "missing required inputs"); - return -EINVAL; + return err; } =20 token_val =3D nla_get_u32(token); @@ -265,39 +265,41 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struc= t genl_info *info) msk =3D mptcp_token_get_sock(genl_info_net(info), token_val); if (!msk) { NL_SET_ERR_MSG_ATTR(info->extack, token, "invalid token"); - return -EINVAL; + return err; } =20 if (!mptcp_pm_is_userspace(msk)) { GENL_SET_ERR_MSG(info, "invalid request; userspace PM not selected"); - return -EINVAL; + goto create_err; } =20 - ret =3D mptcp_pm_parse_addr(laddr, info, &addr_l); - if (ret < 0) { + err =3D mptcp_pm_parse_addr(laddr, info, &addr_l); + if (err < 0) { NL_SET_ERR_MSG_ATTR(info->extack, laddr, "error parsing local addr"); - return -EINVAL; + goto create_err; } =20 if (addr_l.id =3D=3D 0) { NL_SET_ERR_MSG_ATTR(info->extack, laddr, "missing local addr id"); - return -EINVAL; + goto create_err; } =20 - ret =3D mptcp_pm_parse_addr(raddr, info, &addr_r); - if (ret < 0) { + err =3D mptcp_pm_parse_addr(raddr, info, &addr_r); + if (err < 0) { NL_SET_ERR_MSG_ATTR(info->extack, raddr, "error parsing remote addr"); - return -EINVAL; + goto create_err; } =20 sk =3D &msk->sk.icsk_inet.sk; lock_sock(sk); =20 - ret =3D __mptcp_subflow_connect(sk, &addr_l, &addr_r); + err =3D __mptcp_subflow_connect(sk, &addr_l, &addr_r); =20 release_sock(sk); =20 - return ret; + create_err: + sock_put((struct sock *)msk); + return err; } =20 static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk, @@ -366,12 +368,12 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, stru= ct genl_info *info) struct mptcp_addr_info addr_r; struct mptcp_sock *msk; struct sock *sk, *ssk; + int err =3D -EINVAL; u32 token_val; - int ret; =20 if (!laddr || !raddr || !token) { GENL_SET_ERR_MSG(info, "missing required inputs"); - return -EINVAL; + return err; } =20 token_val =3D nla_get_u32(token); @@ -379,34 +381,34 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, stru= ct genl_info *info) msk =3D mptcp_token_get_sock(genl_info_net(info), token_val); if (!msk) { NL_SET_ERR_MSG_ATTR(info->extack, token, "invalid token"); - return -EINVAL; + return err; } =20 if (!mptcp_pm_is_userspace(msk)) { GENL_SET_ERR_MSG(info, "invalid request; userspace PM not selected"); - return -EINVAL; + goto destroy_err; } =20 - ret =3D mptcp_pm_parse_addr(laddr, info, &addr_l); - if (ret < 0) { + err =3D mptcp_pm_parse_addr(laddr, info, &addr_l); + if (err < 0) { NL_SET_ERR_MSG_ATTR(info->extack, laddr, "error parsing local addr"); - return ret; + goto destroy_err; } =20 - ret =3D mptcp_pm_parse_addr(raddr, info, &addr_r); - if (ret < 0) { + err =3D mptcp_pm_parse_addr(raddr, info, &addr_r); + if (err < 0) { NL_SET_ERR_MSG_ATTR(info->extack, raddr, "error parsing remote addr"); - return ret; + goto destroy_err; } =20 if (addr_l.family !=3D addr_r.family) { GENL_SET_ERR_MSG(info, "address families do not match"); - return -EINVAL; + goto destroy_err; } =20 if (!addr_l.port || !addr_r.port) { GENL_SET_ERR_MSG(info, "missing local or remote port"); - return -EINVAL; + goto destroy_err; } =20 sk =3D &msk->sk.icsk_inet.sk; @@ -416,9 +418,12 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struc= t genl_info *info) =20 mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN); mptcp_close_ssk(sk, ssk, subflow); + err =3D 0; } else { - ret =3D -ESRCH; + err =3D -ESRCH; } =20 - return ret; + destroy_err: + sock_put((struct sock *)msk); + return err; } --=20 2.31.1