From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Geliang Tang <geliang.tang@suse.com>,
Matthieu Baerts <matthieu.baerts@tessares.net>,
Larysa Zaremba <larysa.zaremba@intel.com>,
Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 24/71] mptcp: unify pm get_local_id interfaces
Date: Sun, 1 Sep 2024 18:17:29 +0200 [thread overview]
Message-ID: <20240901160802.801562665@linuxfoundation.org> (raw)
In-Reply-To: <20240901160801.879647959@linuxfoundation.org>
6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Geliang Tang <geliang.tang@suse.com>
[ Upstream commit 9bbec87ecfe8a5c06710100a93e6b7e66f2cbbaf ]
This patch unifies the three PM get_local_id() interfaces:
mptcp_pm_nl_get_local_id() in mptcp/pm_netlink.c for the in-kernel PM and
mptcp_userspace_pm_get_local_id() in mptcp/pm_userspace.c for the
userspace PM.
They'll be switched in the common PM infterface mptcp_pm_get_local_id()
in mptcp/pm.c based on whether mptcp_pm_is_userspace() or not.
Also put together the declarations of these three functions in protocol.h.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: f448451aa62d ("mptcp: pm: remove mptcp_pm_remove_subflow()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/mptcp/pm.c | 18 +++++++++++++++++-
net/mptcp/pm_netlink.c | 22 +++-------------------
net/mptcp/protocol.h | 2 +-
3 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 323fc823069ba..5d9baade5c3b4 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -415,7 +415,23 @@ bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
{
- return mptcp_pm_nl_get_local_id(msk, skc);
+ struct mptcp_addr_info skc_local;
+ struct mptcp_addr_info msk_local;
+
+ if (WARN_ON_ONCE(!msk))
+ return -1;
+
+ /* The 0 ID mapping is defined by the first subflow, copied into the msk
+ * addr
+ */
+ mptcp_local_address((struct sock_common *)msk, &msk_local);
+ mptcp_local_address((struct sock_common *)skc, &skc_local);
+ if (mptcp_addresses_equal(&msk_local, &skc_local, false))
+ return 0;
+
+ if (mptcp_pm_is_userspace(msk))
+ return mptcp_userspace_pm_get_local_id(msk, &skc_local);
+ return mptcp_pm_nl_get_local_id(msk, &skc_local);
}
bool mptcp_pm_is_backup(struct mptcp_sock *msk, struct sock_common *skc)
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index 6fb01e9768476..6a85e9665080c 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -1091,33 +1091,17 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
return 0;
}
-int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
+int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc)
{
struct mptcp_pm_addr_entry *entry;
- struct mptcp_addr_info skc_local;
- struct mptcp_addr_info msk_local;
struct pm_nl_pernet *pernet;
int ret = -1;
- if (WARN_ON_ONCE(!msk))
- return -1;
-
- /* The 0 ID mapping is defined by the first subflow, copied into the msk
- * addr
- */
- mptcp_local_address((struct sock_common *)msk, &msk_local);
- mptcp_local_address((struct sock_common *)skc, &skc_local);
- if (mptcp_addresses_equal(&msk_local, &skc_local, false))
- return 0;
-
- if (mptcp_pm_is_userspace(msk))
- return mptcp_userspace_pm_get_local_id(msk, &skc_local);
-
pernet = pm_nl_get_pernet_from_msk(msk);
rcu_read_lock();
list_for_each_entry_rcu(entry, &pernet->local_addr_list, list) {
- if (mptcp_addresses_equal(&entry->addr, &skc_local, entry->addr.port)) {
+ if (mptcp_addresses_equal(&entry->addr, skc, entry->addr.port)) {
ret = entry->addr.id;
break;
}
@@ -1131,7 +1115,7 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
if (!entry)
return -ENOMEM;
- entry->addr = skc_local;
+ entry->addr = *skc;
entry->addr.id = 0;
entry->addr.port = 0;
entry->ifindex = 0;
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index f6ec1e0bf6a99..b4d6710e6ca3a 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -914,6 +914,7 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff *skb,
bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remaining,
struct mptcp_rm_list *rm_list);
int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
+int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
bool mptcp_pm_is_backup(struct mptcp_sock *msk, struct sock_common *skc);
bool mptcp_pm_nl_is_backup(struct mptcp_sock *msk, struct mptcp_addr_info *skc);
@@ -932,7 +933,6 @@ void __init mptcp_pm_nl_init(void);
void mptcp_pm_nl_work(struct mptcp_sock *msk);
void mptcp_pm_nl_rm_subflow_received(struct mptcp_sock *msk,
const struct mptcp_rm_list *rm_list);
-int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc);
unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
unsigned int mptcp_pm_get_subflows_max(const struct mptcp_sock *msk);
--
2.43.0
next prev parent reply other threads:[~2024-09-01 16:47 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-01 16:17 [PATCH 6.1 00/71] 6.1.108-rc1 review Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 01/71] drm/amdgpu: Using uninitialized value *size when calling amdgpu_vce_cs_reloc Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 02/71] LoongArch: Remove the unused dma-direct.h Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 03/71] btrfs: run delayed iputs when flushing delalloc Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 04/71] smb/client: avoid dereferencing rdata=NULL in smb2_new_read_req() Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 05/71] pinctrl: rockchip: correct RK3328 iomux width flag for GPIO2-B pins Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 06/71] pinctrl: single: fix potential NULL dereference in pcs_get_function() Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 07/71] of: Add cleanup.h based auto release via __free(device_node) markings Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 08/71] wifi: wfx: repair open network AP mode Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 09/71] wifi: mwifiex: duplicate static structs used in driver instances Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 10/71] net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 11/71] mptcp: close subflow when receiving TCP+FIN Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 12/71] mptcp: sched: check both backup in retrans Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 13/71] mptcp: pm: skip connecting to already established sf Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 14/71] mptcp: pm: reset MPC endp ID when re-added Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 15/71] mptcp: pm: send ACK on an active subflow Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 16/71] mptcp: pm: do not remove already closed subflows Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 17/71] mptcp: pm: ADD_ADDR 0 is not a new address Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 18/71] drm/amdgpu: align pp_power_profile_mode with kernel docs Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 19/71] drm/amdgpu/swsmu: always force a state reprogram on init Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 20/71] ata: libata-core: Fix null pointer dereference on error Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 21/71] usb: typec: fix up incorrectly backported "usb: typec: tcpm: unregister existing source caps before re-registration" Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 22/71] mmc: Avoid open coding by using mmc_op_tuning() Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 23/71] mmc: mtk-sd: receive cmd8 data when hs400 tuning fail Greg Kroah-Hartman
2024-09-01 16:17 ` Greg Kroah-Hartman [this message]
2024-09-01 16:17 ` [PATCH 6.1 25/71] mptcp: pm: remove mptcp_pm_remove_subflow() Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 26/71] mptcp: pm: only mark subflow endp as available Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 27/71] mptcp: pm: check add_addr_accept_max before accepting new ADD_ADDR Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 28/71] of: Introduce for_each_*_child_of_node_scoped() to automate of_node_put() handling Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 29/71] thermal: of: Fix OF node leak in thermal_of_trips_init() error path Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 30/71] thermal: of: Fix OF node leak in of_thermal_zone_find() error paths Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 31/71] ASoC: amd: acp: fix module autoloading Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 32/71] ASoC: SOF: amd: Fix for acp init sequence Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 33/71] pinctrl: mediatek: common-v2: Fix broken bias-disable for PULL_PU_PD_RSEL_TYPE Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 34/71] mm: Fix missing folio invalidation calls during truncation Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 35/71] btrfs: fix extent map use-after-free when adding pages to compressed bio Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 36/71] soundwire: stream: fix programming slave ports for non-continous port maps Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 37/71] phy: xilinx: add runtime PM support Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 38/71] phy: xilinx: phy-zynqmp: dynamic clock support for power-save Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 39/71] phy: xilinx: phy-zynqmp: Fix SGMII linkup failure on resume Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 40/71] dmaengine: dw: Add peripheral bus width verification Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 41/71] dmaengine: dw: Add memory " Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 42/71] Bluetooth: hci_core: Fix not handling hibernation actions Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 43/71] iommu: Do not return 0 from map_pages if it doesnt do anything Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 44/71] netfilter: nf_tables: restore IP sanity checks for netdev/egress Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 45/71] wifi: iwlwifi: fw: fix wgds rev 3 exact size Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 46/71] ethtool: check device is present when getting link settings Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 47/71] netfilter: nf_tables_ipv6: consider network offset in netdev/egress validation Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 48/71] selftests: forwarding: no_forwarding: Down ports on cleanup Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 49/71] selftests: forwarding: local_termination: " Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 50/71] bonding: implement xdo_dev_state_free and call it after deletion Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 51/71] gtp: fix a potential NULL pointer dereference Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 52/71] sctp: fix association labeling in the duplicate COOKIE-ECHO case Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 53/71] drm/amd/display: avoid using null object of framebuffer Greg Kroah-Hartman
2024-09-01 16:17 ` [PATCH 6.1 54/71] net: busy-poll: use ktime_get_ns() instead of local_clock() Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 55/71] nfc: pn533: Add poll mod list filling check Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 56/71] soc: qcom: cmd-db: Map shared memory as WC, not WB Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 57/71] cdc-acm: Add DISABLE_ECHO quirk for GE HealthCare UI Controller Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 58/71] USB: serial: option: add MeiG Smart SRM825L Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 59/71] usb: dwc3: omap: add missing depopulate in probe error path Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 60/71] usb: dwc3: core: Prevent USB core invalid event buffer address access Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 61/71] usb: dwc3: st: fix probed platform device ref count on probe error path Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 62/71] usb: dwc3: st: add missing depopulate in " Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 63/71] usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes() Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 64/71] usb: cdnsp: fix incorrect index in cdnsp_get_hw_deq function Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 65/71] usb: cdnsp: fix for Link TRB with TC Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 66/71] phy: zynqmp: Enable reference clock correctly Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 67/71] igc: Fix reset adapter logics when tx mode change Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 68/71] igc: Fix qbv tx latency by setting gtxoffset Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 69/71] scsi: aacraid: Fix double-free on probe failure Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 70/71] apparmor: fix policy_unpack_test on big endian systems Greg Kroah-Hartman
2024-09-01 16:18 ` [PATCH 6.1 71/71] fbdev: offb: fix up missing cleanup.h Greg Kroah-Hartman
2024-09-02 7:10 ` [PATCH 6.1 00/71] 6.1.108-rc1 review Pavel Machek
2024-09-02 15:42 ` Naresh Kamboju
2024-09-02 18:55 ` Florian Fainelli
2024-09-03 7:23 ` Ron Economos
2024-09-03 8:44 ` Jon Hunter
2024-09-03 11:48 ` Mark Brown
2024-09-04 7:24 ` Yann Sionneau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240901160802.801562665@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=geliang.tang@suse.com \
--cc=kuba@kernel.org \
--cc=larysa.zaremba@intel.com \
--cc=matthieu.baerts@tessares.net \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.