@@ -1071,22 +1071,6 @@ static inline int xfrm_nlmsg_multicast(struct net *net, struct sk_buff *skb,
10711071 return nlmsg_multicast (nlsk , skb , pid , group , GFP_ATOMIC );
10721072}
10731073
1074- /* A similar wrapper like xfrm_nlmsg_multicast checking that nlsk is still
1075- * available.
1076- */
1077- static inline int xfrm_nlmsg_unicast (struct net * net , struct sk_buff * skb ,
1078- u32 pid )
1079- {
1080- struct sock * nlsk = rcu_dereference (net -> xfrm .nlsk );
1081-
1082- if (!nlsk ) {
1083- kfree_skb (skb );
1084- return - EPIPE ;
1085- }
1086-
1087- return nlmsg_unicast (nlsk , skb , pid );
1088- }
1089-
10901074static inline unsigned int xfrm_spdinfo_msgsize (void )
10911075{
10921076 return NLMSG_ALIGN (4 )
@@ -1211,7 +1195,7 @@ static int xfrm_get_spdinfo(struct sk_buff *skb, struct nlmsghdr *nlh,
12111195 err = build_spdinfo (r_skb , net , sportid , seq , * flags );
12121196 BUG_ON (err < 0 );
12131197
1214- return xfrm_nlmsg_unicast (net , r_skb , sportid );
1198+ return nlmsg_unicast (net -> xfrm . nlsk , r_skb , sportid );
12151199}
12161200
12171201static inline unsigned int xfrm_sadinfo_msgsize (void )
@@ -1270,7 +1254,7 @@ static int xfrm_get_sadinfo(struct sk_buff *skb, struct nlmsghdr *nlh,
12701254 err = build_sadinfo (r_skb , net , sportid , seq , * flags );
12711255 BUG_ON (err < 0 );
12721256
1273- return xfrm_nlmsg_unicast (net , r_skb , sportid );
1257+ return nlmsg_unicast (net -> xfrm . nlsk , r_skb , sportid );
12741258}
12751259
12761260static int xfrm_get_sa (struct sk_buff * skb , struct nlmsghdr * nlh ,
@@ -1290,7 +1274,7 @@ static int xfrm_get_sa(struct sk_buff *skb, struct nlmsghdr *nlh,
12901274 if (IS_ERR (resp_skb )) {
12911275 err = PTR_ERR (resp_skb );
12921276 } else {
1293- err = xfrm_nlmsg_unicast (net , resp_skb , NETLINK_CB (skb ).portid );
1277+ err = nlmsg_unicast (net -> xfrm . nlsk , resp_skb , NETLINK_CB (skb ).portid );
12941278 }
12951279 xfrm_state_put (x );
12961280out_noput :
@@ -1353,7 +1337,7 @@ static int xfrm_alloc_userspi(struct sk_buff *skb, struct nlmsghdr *nlh,
13531337 goto out ;
13541338 }
13551339
1356- err = xfrm_nlmsg_unicast (net , resp_skb , NETLINK_CB (skb ).portid );
1340+ err = nlmsg_unicast (net -> xfrm . nlsk , resp_skb , NETLINK_CB (skb ).portid );
13571341
13581342out :
13591343 xfrm_state_put (x );
@@ -1919,8 +1903,8 @@ static int xfrm_get_policy(struct sk_buff *skb, struct nlmsghdr *nlh,
19191903 if (IS_ERR (resp_skb )) {
19201904 err = PTR_ERR (resp_skb );
19211905 } else {
1922- err = xfrm_nlmsg_unicast (net , resp_skb ,
1923- NETLINK_CB (skb ).portid );
1906+ err = nlmsg_unicast (net -> xfrm . nlsk , resp_skb ,
1907+ NETLINK_CB (skb ).portid );
19241908 }
19251909 } else {
19261910 xfrm_audit_policy_delete (xp , err ? 0 : 1 , true);
@@ -2078,7 +2062,7 @@ static int xfrm_get_ae(struct sk_buff *skb, struct nlmsghdr *nlh,
20782062 err = build_aevent (r_skb , x , & c );
20792063 BUG_ON (err < 0 );
20802064
2081- err = xfrm_nlmsg_unicast (net , r_skb , NETLINK_CB (skb ).portid );
2065+ err = nlmsg_unicast (net -> xfrm . nlsk , r_skb , NETLINK_CB (skb ).portid );
20822066 spin_unlock_bh (& x -> lock );
20832067 xfrm_state_put (x );
20842068 return err ;
0 commit comments