Skip to content

Commit 25cd49d

Browse files
Geliang Tangintel-lab-lkp
authored andcommitted
mptcp: drop struct mptcp_pm_add_entry
There is no need to add a dedicated address entry type "mptcp_pm_add_entry" to represent ADD_ADDR addresses. Additional fields for ADD_ADDR addresses can be added into struct mptcp_pm_addr_entry directly. This makes the path manager code simpler. Here "union" can be used to merge struct mptcp_pm_addr_entry and struct mptcp_pm_add_entry into one. Then all mptcp_pm_add_entry can be replaced by mptcp_pm_addr_entry. Although this increases the size of the structure even more, but that's OK to do so because it is not used in an array. Signed-off-by: Geliang Tang <[email protected]>
1 parent 5abb523 commit 25cd49d

File tree

2 files changed

+24
-22
lines changed

2 files changed

+24
-22
lines changed

net/mptcp/pm_netlink.c

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,6 @@
1818

1919
static int pm_nl_pernet_id;
2020

21-
struct mptcp_pm_add_entry {
22-
struct list_head list;
23-
struct mptcp_addr_info addr;
24-
u8 retrans_times;
25-
struct timer_list add_timer;
26-
struct mptcp_sock *sock;
27-
};
28-
2921
struct pm_nl_pernet {
3022
/* protects pernet updates */
3123
spinlock_t lock;
@@ -257,11 +249,11 @@ bool mptcp_pm_nl_check_work_pending(struct mptcp_sock *msk)
257249
return true;
258250
}
259251

260-
struct mptcp_pm_add_entry *
252+
struct mptcp_pm_addr_entry *
261253
mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
262254
const struct mptcp_addr_info *addr)
263255
{
264-
struct mptcp_pm_add_entry *entry;
256+
struct mptcp_pm_addr_entry *entry;
265257

266258
lockdep_assert_held(&msk->pm.lock);
267259

@@ -275,7 +267,7 @@ mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
275267

276268
bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk)
277269
{
278-
struct mptcp_pm_add_entry *entry;
270+
struct mptcp_pm_addr_entry *entry;
279271
struct mptcp_addr_info saddr;
280272
bool ret = false;
281273

@@ -296,7 +288,7 @@ bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk)
296288

297289
static void mptcp_pm_add_timer(struct timer_list *timer)
298290
{
299-
struct mptcp_pm_add_entry *entry = from_timer(entry, timer, add_timer);
291+
struct mptcp_pm_addr_entry *entry = from_timer(entry, timer, add_timer);
300292
struct mptcp_sock *msk = entry->sock;
301293
struct sock *sk = (struct sock *)msk;
302294

@@ -338,11 +330,11 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
338330
__sock_put(sk);
339331
}
340332

341-
struct mptcp_pm_add_entry *
333+
struct mptcp_pm_addr_entry *
342334
mptcp_pm_del_add_timer(struct mptcp_sock *msk,
343335
const struct mptcp_addr_info *addr, bool check_id)
344336
{
345-
struct mptcp_pm_add_entry *entry;
337+
struct mptcp_pm_addr_entry *entry;
346338
struct sock *sk = (struct sock *)msk;
347339
struct timer_list *add_timer = NULL;
348340

@@ -366,7 +358,7 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk,
366358
bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
367359
const struct mptcp_addr_info *addr)
368360
{
369-
struct mptcp_pm_add_entry *add_entry = NULL;
361+
struct mptcp_pm_addr_entry *add_entry = NULL;
370362
struct sock *sk = (struct sock *)msk;
371363
struct net *net = sock_net(sk);
372364

@@ -402,7 +394,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
402394

403395
void mptcp_pm_free_anno_list(struct mptcp_sock *msk)
404396
{
405-
struct mptcp_pm_add_entry *entry, *tmp;
397+
struct mptcp_pm_addr_entry *entry, *tmp;
406398
struct sock *sk = (struct sock *)msk;
407399
LIST_HEAD(free_list);
408400

@@ -1474,7 +1466,7 @@ int mptcp_pm_nl_add_addr_doit(struct sk_buff *skb, struct genl_info *info)
14741466
bool mptcp_remove_anno_list_by_saddr(struct mptcp_sock *msk,
14751467
const struct mptcp_addr_info *addr)
14761468
{
1477-
struct mptcp_pm_add_entry *entry;
1469+
struct mptcp_pm_addr_entry *entry;
14781470

14791471
entry = mptcp_pm_del_add_timer(msk, addr, false);
14801472
if (entry) {

net/mptcp/protocol.h

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,19 @@ struct mptcp_pm_data {
239239
struct mptcp_pm_addr_entry {
240240
struct list_head list;
241241
struct mptcp_addr_info addr;
242-
u8 flags;
243-
int ifindex;
244-
struct socket *lsk;
242+
union {
243+
struct {
244+
u8 flags;
245+
int ifindex;
246+
struct socket *lsk;
247+
};
248+
/* mptcp_pm_add_entry */
249+
struct {
250+
u8 retrans_times;
251+
struct timer_list add_timer;
252+
struct mptcp_sock *sock;
253+
};
254+
};
245255
};
246256

247257
struct mptcp_data_frag {
@@ -1019,10 +1029,10 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
10191029
const struct mptcp_addr_info *addr);
10201030
void mptcp_pm_free_anno_list(struct mptcp_sock *msk);
10211031
bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
1022-
struct mptcp_pm_add_entry *
1032+
struct mptcp_pm_addr_entry *
10231033
mptcp_pm_del_add_timer(struct mptcp_sock *msk,
10241034
const struct mptcp_addr_info *addr, bool check_id);
1025-
struct mptcp_pm_add_entry *
1035+
struct mptcp_pm_addr_entry *
10261036
mptcp_lookup_anno_list_by_saddr(const struct mptcp_sock *msk,
10271037
const struct mptcp_addr_info *addr);
10281038
bool mptcp_lookup_subflow_by_saddr(const struct list_head *list,

0 commit comments

Comments
 (0)