@@ -1150,7 +1150,8 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
11501150 return err ;
11511151}
11521152
1153- int mptcp_pm_nl_get_local_id (struct mptcp_sock * msk , struct mptcp_addr_info * skc )
1153+ int mptcp_pm_nl_get_local_id (struct mptcp_sock * msk ,
1154+ struct mptcp_pm_addr_entry * skc )
11541155{
11551156 struct mptcp_pm_addr_entry * entry ;
11561157 struct pm_nl_pernet * pernet ;
@@ -1159,7 +1160,7 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc
11591160 pernet = pm_nl_get_pernet_from_msk (msk );
11601161
11611162 rcu_read_lock ();
1162- entry = __lookup_addr (pernet , skc );
1163+ entry = __lookup_addr (pernet , & skc -> addr );
11631164 ret = entry ? entry -> addr .id : -1 ;
11641165 rcu_read_unlock ();
11651166 if (ret >= 0 )
@@ -1170,12 +1171,8 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_addr_info *skc
11701171 if (!entry )
11711172 return - ENOMEM ;
11721173
1173- entry -> addr = * skc ;
1174- entry -> addr .id = 0 ;
1174+ * entry = * skc ;
11751175 entry -> addr .port = 0 ;
1176- entry -> ifindex = 0 ;
1177- entry -> flags = MPTCP_PM_ADDR_FLAG_IMPLICIT ;
1178- entry -> lsk = NULL ;
11791176 ret = mptcp_pm_nl_append_new_local_addr (pernet , entry , true, false);
11801177 if (ret < 0 )
11811178 kfree (entry );
@@ -1919,11 +1916,12 @@ static void mptcp_pm_nl_fullmesh(struct mptcp_sock *msk,
19191916 spin_unlock_bh (& msk -> pm .lock );
19201917}
19211918
1922- static void mptcp_nl_set_flags (struct net * net , struct mptcp_addr_info * addr ,
1923- u8 flags , u8 changed )
1919+ static void mptcp_nl_set_flags (struct net * net ,
1920+ struct mptcp_pm_addr_entry * local ,
1921+ u8 changed )
19241922{
1925- u8 is_subflow = !!(flags & MPTCP_PM_ADDR_FLAG_SUBFLOW );
1926- u8 bkup = !!(flags & MPTCP_PM_ADDR_FLAG_BACKUP );
1923+ u8 is_subflow = !!(local -> flags & MPTCP_PM_ADDR_FLAG_SUBFLOW );
1924+ u8 bkup = !!(local -> flags & MPTCP_PM_ADDR_FLAG_BACKUP );
19271925 long s_slot = 0 , s_num = 0 ;
19281926 struct mptcp_sock * msk ;
19291927
@@ -1938,10 +1936,10 @@ static void mptcp_nl_set_flags(struct net *net, struct mptcp_addr_info *addr,
19381936
19391937 lock_sock (sk );
19401938 if (changed & MPTCP_PM_ADDR_FLAG_BACKUP )
1941- mptcp_pm_nl_mp_prio_send_ack (msk , addr , NULL , bkup );
1939+ mptcp_pm_nl_mp_prio_send_ack (msk , & local -> addr , NULL , bkup );
19421940 /* Subflows will only be recreated if the SUBFLOW flag is set */
19431941 if (is_subflow && (changed & MPTCP_PM_ADDR_FLAG_FULLMESH ))
1944- mptcp_pm_nl_fullmesh (msk , addr );
1942+ mptcp_pm_nl_fullmesh (msk , & local -> addr );
19451943 release_sock (sk );
19461944
19471945next :
@@ -1995,7 +1993,7 @@ int mptcp_pm_nl_set_flags(struct mptcp_pm_addr_entry *local,
19951993 * local = * entry ;
19961994 spin_unlock_bh (& pernet -> lock );
19971995
1998- mptcp_nl_set_flags (net , & local -> addr , entry -> flags , changed );
1996+ mptcp_nl_set_flags (net , local , changed );
19991997 return 0 ;
20001998}
20011999
0 commit comments