From nobody Thu May 2 13:32:51 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1836149pid; Tue, 19 Apr 2022 16:03:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz6tYDLH8NSgeQXDLmXeAu20IezJFSHt7xT5Ico3TU75kZeJanzhxrYdPFsGfYmJeIwvL6W X-Received: by 2002:a17:90a:1db:b0:1bf:711d:267a with SMTP id 27-20020a17090a01db00b001bf711d267amr981635pjd.155.1650409432058; Tue, 19 Apr 2022 16:03:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650409432; cv=none; d=google.com; s=arc-20160816; b=Yclxw/i2SaPY2mrEqg7T+lRP53CSpard/eX7BcSt6xf5OKSFW6i8wUHToBC6ORggUH huf+iCmZaOGw2T2OjbR+D3ikzSvN5UQCgEFxLPtWidY08BPhGaOb9aaewvJuK3TjLOL/ R7lFBCsqYyb6gRUkKy9O2iEuUz00H5lbPLEUdp6T7tG1332fCAHrZin5CCYvu3j4lexm IxIj6e9Msajx4944x4pVt7VgsPtpQlavxJGErtTJJ3x6YxN/ikGKXBBWqrmrJNJp5iCf i4YITd38e+jSP+0Zbcs5I4aPn2li5wIeu+U40b7OZ4SGzY37jgJXXVcEUsZWScnJmAlu ofjg== 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=4P+TmKZic3reD+RFSPe1OiK3KtFbsLc2F+Ay5SZOA6g=; b=KO/apzBJjjozRPJ39aMEFyNMpJxZFUFaC6h49CyJnVHSEO1KGdEwcA1w7fZFw+pnZW 4ZWk2ERXWtIhV8P8McODTAI7i1Q1yfri0Yv7UmM0W2yhE8X9VHBSIpVPzrVrUhzc0daR /WwHn1nTNhFR59+U4RnALjincBcdjhUWKFCL3mD2/lpPI0bI/A4vJK6/u8gYfUFfVyqC 310GhtkJ4f2+erV+V0svmXmobQWhBASOn5Ons7X/7XgvJQpecIbbW7xwtqaMCljSsCPE cL83fqIkckTwzu8OH0gzWPMwAKRDYBJYy/8Jz4oDy6R2ZLqNCNJYdCugwsrMiAbvbl5A zvtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hKCEgsC6; spf=pass (google.com: domain of mptcp+bounces-4774-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4774-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 q11-20020a65494b000000b0039d9d404482si609262pgs.570.2022.04.19.16.03.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 16:03:52 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4774-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=hKCEgsC6; spf=pass (google.com: domain of mptcp+bounces-4774-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4774-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 92EED28099E for ; Tue, 19 Apr 2022 23:03:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1CAC81851; Tue, 19 Apr 2022 23:03:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 5E652184E for ; Tue, 19 Apr 2022 23:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650409429; x=1681945429; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=sLb4cwgI+u7R1HcWLkfy6PWHLVUbv4XFwozosD46xqc=; b=hKCEgsC6Wfi/7/4ErjfdFU6Dh57EgB1CGNJFL/HE7hrk0wPAZT8CVDPP EcXSkR3Og5sdmBR7bhE1yvY7ux+eg1ZA7rTveZFdBpx8p7JiyA2jM3tGr sWZMF+A5EiW8e533hFwxB1NO/QTnhKt31q4kooDgURM/unsKLwnwGr7cO jSZUYxI6yvzudfWiNRZMrQDxg3pCQlveQeiv6UpWgQpzATrkcg3gYHzNA eP/3v8sSfbt7bmkmmMrBygBRfI76FKbkvLO2dWqKfM419zCjMZgTL2jPY cuG4yS0Dw0YuYw3NuPvSDSBX6+rozaqnOCmL07DfOWn5L71Ie5zb29zYY Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="263654609" X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="263654609" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:47 -0700 X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="625832514" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:46 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next 1/3] Squash-to: mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE Date: Tue, 19 Apr 2022 19:03:38 -0400 Message-Id: <20220419230340.2263545-2-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220419230340.2263545-1-kishen.maloor@intel.com> References: <20220419230340.2263545-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..fca3e4bdf5d4 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -127,11 +127,11 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct= genl_info *info) struct mptcp_pm_addr_entry addr_val; struct mptcp_sock *msk; u32 token_val; - int err; + int err =3D -EINVAL; =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 Thu May 2 13:32:51 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1836155pid; Tue, 19 Apr 2022 16:03:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzGwWnu0a77Yj6ddzpfM60YSEECsm61tcp4IyLo2/Ow3wrBCbmGoV4zHXJ3+y91gzGaMvAm X-Received: by 2002:a9d:7490:0:b0:605:48c7:8d93 with SMTP id t16-20020a9d7490000000b0060548c78d93mr5437616otk.209.1650409433287; Tue, 19 Apr 2022 16:03:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650409433; cv=none; d=google.com; s=arc-20160816; b=gJ6WpBzmbv3M6LgxSVQrthaWZQBXOtr5M52ysvwBlcJE3+0hkVjt5+MSC8LW1hnrX1 ZMvAYr4RH2Gb2mS3BF9UQ+J41I/0f6WNue2bzrxHyfDFKd38tl+9uZtPXJCi3K4OlRmO 7OWBwkQtm8VG8LGgqFFg+TNjrSFBOI0qJ9B7Ob5CEGg29RDIKfxATMGuyO4BoMHtL397 GPds8xFqLmalyf4fNaKy2UwI0LlFEMh0GD8Awy3JvpbqS2dr8EJKXPwEppUzpmVuvWAi o53ydXy69hBH1WvqTSUS2wLJy9fg1EYcVpWpToW5qodk7oeNXJ5tktzaGyeaLUNcHwfw wkJg== 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=e+JoXu3+WELPPUHs3qQ3/9hbZIGOrVirS3l2p8lW4rI=; b=Q/4857QCP95xH6/KGz/OCFq5l4xZ6kTqnrfwYVeVOaK4fqXzLCOo72Ihr+4mQ8/xUm yS5KIsgrBEc5DBxtspy6+JK84X+X7lipXMFcaGWAdYz50iFhR52EUP//5aJafwanHjmw +fQYZK+2r9dM9LbmKoH+QAv7oF/uCR/idmx9PRn9L3qsXroxU4ZZZpKaa/0OO1UxQ0a1 K1DckbGA1XO7ghb3LPvvj3+JdsNGaQdvdHa6xn9kbXor1xJteRMBH0e2ADSNIVIPyldl gUmiFaUNFAlPjZRxSMz/X3zAJOzqjjWTDN2JXV+QGDbfS3s7zQw6awUXtb9+GkHpNzJC gQ7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=OywYeVI8; spf=pass (google.com: domain of mptcp+bounces-4775-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4775-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id j129-20020aca3c87000000b002ef0c34766fsi117226oia.239.2022.04.19.16.03.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 16:03:53 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4775-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=OywYeVI8; spf=pass (google.com: domain of mptcp+bounces-4775-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4775-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 da.mirrors.kernel.org (Postfix) with ESMTPS id 1C18B2E0CA6 for ; Tue, 19 Apr 2022 23:03:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3D1DC2574; Tue, 19 Apr 2022 23:03:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 981C51845 for ; Tue, 19 Apr 2022 23:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650409429; x=1681945429; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=pBOeyy2hr87q1cO9BfSp91GRkJyMIhNauZ9qhn+PZqU=; b=OywYeVI8x5lIWWCinqO1xacseiimw7sUk20PtDnq2riwSQzzMjK7RYKr g87Otwj8r8yk8P/6MmzqIBqjRycrg0WaKnGVhBh2ZVS5y8ft1RXlMr15H 2FhYpnJ6Zu6nO2grI/BC8cRKYDfESVG6guRn8YsHOCOmIx9s+GgdJgsLg pURtthjHgzbLxP1aeg06wmfR13H08W+HZWoEs6l7LPE8WD4PV4/E5gGqp 4oKdCfVREY2NwwLYGQlEe+KBq0Pb6Bgg6SnBp+7N5VU+nm6oAs28j21PN XjEVlw8E8ecSW0ItZABfgY3g2ZfXqFe7ked0VhI3pvqy8AHe+PeAchBA8 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="263654610" X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="263654610" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:47 -0700 X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="625832517" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:47 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next 2/3] Squash-to: mptcp: netlink: Add MPTCP_PM_CMD_REMOVE Date: Tue, 19 Apr 2022 19:03:39 -0400 Message-Id: <20220419230340.2263545-3-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220419230340.2263545-1-kishen.maloor@intel.com> References: <20220419230340.2263545-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 fca3e4bdf5d4..3d8f6126b952 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 Thu May 2 13:32:51 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp1836165pid; Tue, 19 Apr 2022 16:03:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxleIKb7bQYHyjAwbNDRuUK+KA6hcuo1CbVBTaod/Gai/LfCM58CSIZGlSSwwr5/kw4iIq+ X-Received: by 2002:a05:6a00:2405:b0:4e1:5008:adcc with SMTP id z5-20020a056a00240500b004e15008adccmr19918045pfh.35.1650409434426; Tue, 19 Apr 2022 16:03:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650409434; cv=none; d=google.com; s=arc-20160816; b=br2tj8OJGrHQYruq/LKDTgo8/yDDSM0Yppwj/uNyL+GAodEp+Q44wBb06tm0f5oydd MtOGMBXZH9Arw96QSw/7iBsqG5N/0CUH4OS+ECiw+6wcOqshfvs7ExNDVZJ5oiRP7bl0 F/Gk6uzu67nCmSACZayGCnXQLPJYN/fctQvzwZ2e1+ogwAktaE3Ih+FCI7hsyaJZCZ7v ci1rW6ZleXgTNsNMY9+ll/P0BzpoqhXb6m2T7Y2sMbE04Tx4ycTvCJr0s1AcY7MxEOgg zrT2FZMyWKHN95J8yCnm9o5cp6ylLaJT5Iq983BlxjyIahBTrrDfIRx7ncxDBOXceajX pzlA== 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=vvgpXiEnu/IuO9uFAermnD687891juQhvd9NVLTPSfs=; b=tfxlXQlRoWZ9jTI8LUxzeVY0twCO5Y+KjAzC396lp9m1WyX4feOZvOshqs53qk252y y8AZiMQCuyGO7CUu0YvVyrATZN83EcqWP9JAi3rfKvIP+E6WvTHzPl8R//0cITkB+jAC 7jwoftw7u+ymWpdIeAWupxwrwOwF7TXaPaaF7/PnTwtH7/MWQXHcGnIC4pWms5pDrk3K ElyqcugePGXVatDlN80zZT90zVOs9KgKtT47UIIaGiB7H8u1JaVEdeCLAfTi+DYfCCJ+ DeCITWjhVdsWbKoRgFQoC1Gxi/zX7+kPqbrCrt/JQ9x225C3qgvO8UXOqpmUNBGHDXLo ykDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=SgGXuuD7; spf=pass (google.com: domain of mptcp+bounces-4776-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4776-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 oc3-20020a17090b1c0300b001cba1057b12si3529856pjb.95.2022.04.19.16.03.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2022 16:03:54 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4776-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=SgGXuuD7; spf=pass (google.com: domain of mptcp+bounces-4776-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4776-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 EC73F2809A3 for ; Tue, 19 Apr 2022 23:03:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ADAF62C9C; Tue, 19 Apr 2022 23:03:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 213F5184E for ; Tue, 19 Apr 2022 23:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650409431; x=1681945431; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=/iFnbVCLgNbBdIBKxTr0KFqIBKEons583QnvOCkLszc=; b=SgGXuuD7+6HSyBJbMdsYAWrXtL20MY3FLTY/tgt4j9+iMoTrvxzdbZSk KRtWAbpNYftsDR6xNPLdLM+wIjWNz0CcylbZEQ9Vt22PNrDJgtY3n1HMp M8wqBk30KXgvZNgQbHcOK0Z3r5sx1CmkFXm4nzT0i03LZBJZ8kT8iRz96 Rpqa9ih46Q40dkD0fkGfn43RjPFUNpGHEl0eO+KqHI+ms0yxjC7EkI+tk xdOiP9c2Xck+ion2sQT87RchnEOcvFY1jWzWVjrrsLdX1P5bxcEKLZKzX ZfxwX95jc35zbZq8DpTeutAoSrakVikOqpHZvSN3mtr0SnhN88Shm/jtm Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="263654612" X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="263654612" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:47 -0700 X-IronPort-AV: E=Sophos;i="5.90,273,1643702400"; d="scan'208";a="625832521" Received: from otc-tsn-4.jf.intel.com ([10.23.153.135]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2022 16:03:47 -0700 From: Kishen Maloor To: kishen.maloor@intel.com, mptcp@lists.linux.dev Subject: [PATCH mptcp-next 3/3] Squash-to: mptcp: netlink: allow userspace-driven subflow establishment Date: Tue, 19 Apr 2022 19:03:40 -0400 Message-Id: <20220419230340.2263545-4-kishen.maloor@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220419230340.2263545-1-kishen.maloor@intel.com> References: <20220419230340.2263545-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 3d8f6126b952..9f6b5eda5524 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