@@ -152,6 +152,7 @@ int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info)
152152 struct mptcp_pm_addr_entry addr_val ;
153153 struct mptcp_sock * msk ;
154154 int err = - EINVAL ;
155+ struct sock * sk ;
155156 u32 token_val ;
156157
157158 if (!addr || !token ) {
@@ -167,6 +168,8 @@ int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info)
167168 return err ;
168169 }
169170
171+ sk = (struct sock * )msk ;
172+
170173 if (!mptcp_pm_is_userspace (msk )) {
171174 GENL_SET_ERR_MSG (info , "invalid request; userspace PM not selected" );
172175 goto announce_err ;
@@ -190,7 +193,7 @@ int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info)
190193 goto announce_err ;
191194 }
192195
193- lock_sock (( struct sock * ) msk );
196+ lock_sock (sk );
194197 spin_lock_bh (& msk -> pm .lock );
195198
196199 if (mptcp_pm_alloc_anno_list (msk , & addr_val .addr )) {
@@ -200,11 +203,11 @@ int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info)
200203 }
201204
202205 spin_unlock_bh (& msk -> pm .lock );
203- release_sock (( struct sock * ) msk );
206+ release_sock (sk );
204207
205208 err = 0 ;
206209 announce_err :
207- sock_put (( struct sock * ) msk );
210+ sock_put (sk );
208211 return err ;
209212}
210213
@@ -251,6 +254,7 @@ int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info)
251254 struct mptcp_sock * msk ;
252255 LIST_HEAD (free_list );
253256 int err = - EINVAL ;
257+ struct sock * sk ;
254258 u32 token_val ;
255259 u8 id_val ;
256260
@@ -268,6 +272,8 @@ int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info)
268272 return err ;
269273 }
270274
275+ sk = (struct sock * )msk ;
276+
271277 if (!mptcp_pm_is_userspace (msk )) {
272278 GENL_SET_ERR_MSG (info , "invalid request; userspace PM not selected" );
273279 goto remove_err ;
@@ -278,7 +284,7 @@ int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info)
278284 goto remove_err ;
279285 }
280286
281- lock_sock (( struct sock * ) msk );
287+ lock_sock (sk );
282288
283289 list_for_each_entry (entry , & msk -> pm .userspace_pm_local_addr_list , list ) {
284290 if (entry -> addr .id == id_val ) {
@@ -289,23 +295,23 @@ int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info)
289295
290296 if (!match ) {
291297 GENL_SET_ERR_MSG (info , "address with specified id not found" );
292- release_sock (( struct sock * ) msk );
298+ release_sock (sk );
293299 goto remove_err ;
294300 }
295301
296302 list_move (& match -> list , & free_list );
297303
298304 mptcp_pm_remove_addrs (msk , & free_list );
299305
300- release_sock (( struct sock * ) msk );
306+ release_sock (sk );
301307
302308 list_for_each_entry_safe (match , entry , & free_list , list ) {
303- sock_kfree_s (( struct sock * ) msk , match , sizeof (* match ));
309+ sock_kfree_s (sk , match , sizeof (* match ));
304310 }
305311
306312 err = 0 ;
307313 remove_err :
308- sock_put (( struct sock * ) msk );
314+ sock_put (sk );
309315 return err ;
310316}
311317
@@ -518,6 +524,7 @@ int mptcp_userspace_pm_set_flags(struct net *net, struct nlattr *token,
518524{
519525 struct mptcp_sock * msk ;
520526 int ret = - EINVAL ;
527+ struct sock * sk ;
521528 u32 token_val ;
522529
523530 token_val = nla_get_u32 (token );
@@ -526,18 +533,20 @@ int mptcp_userspace_pm_set_flags(struct net *net, struct nlattr *token,
526533 if (!msk )
527534 return ret ;
528535
536+ sk = (struct sock * )msk ;
537+
529538 if (!mptcp_pm_is_userspace (msk ))
530539 goto set_flags_err ;
531540
532541 if (loc -> addr .family == AF_UNSPEC ||
533542 rem -> addr .family == AF_UNSPEC )
534543 goto set_flags_err ;
535544
536- lock_sock (( struct sock * ) msk );
545+ lock_sock (sk );
537546 ret = mptcp_pm_nl_mp_prio_send_ack (msk , & loc -> addr , & rem -> addr , bkup );
538- release_sock (( struct sock * ) msk );
547+ release_sock (sk );
539548
540549set_flags_err :
541- sock_put (( struct sock * ) msk );
550+ sock_put (sk );
542551 return ret ;
543552}
0 commit comments