aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/xfrm/xfrm_user.c45
1 files changed, 15 insertions, 30 deletions
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index c9bb7210eb69..249940eaced8 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -800,8 +800,7 @@ static int xfrm_get_sa(struct sk_buff *skb, struct nlmsghdr *nlh,
800 if (IS_ERR(resp_skb)) { 800 if (IS_ERR(resp_skb)) {
801 err = PTR_ERR(resp_skb); 801 err = PTR_ERR(resp_skb);
802 } else { 802 } else {
803 err = netlink_unicast(xfrm_nl, resp_skb, 803 err = nlmsg_unicast(xfrm_nl, resp_skb, NETLINK_CB(skb).pid);
804 NETLINK_CB(skb).pid, MSG_DONTWAIT);
805 } 804 }
806 xfrm_state_put(x); 805 xfrm_state_put(x);
807out_noput: 806out_noput:
@@ -882,8 +881,7 @@ static int xfrm_alloc_userspi(struct sk_buff *skb, struct nlmsghdr *nlh,
882 goto out; 881 goto out;
883 } 882 }
884 883
885 err = netlink_unicast(xfrm_nl, resp_skb, 884 err = nlmsg_unicast(xfrm_nl, resp_skb, NETLINK_CB(skb).pid);
886 NETLINK_CB(skb).pid, MSG_DONTWAIT);
887 885
888out: 886out:
889 xfrm_state_put(x); 887 xfrm_state_put(x);
@@ -1393,9 +1391,8 @@ static int xfrm_get_policy(struct sk_buff *skb, struct nlmsghdr *nlh,
1393 if (IS_ERR(resp_skb)) { 1391 if (IS_ERR(resp_skb)) {
1394 err = PTR_ERR(resp_skb); 1392 err = PTR_ERR(resp_skb);
1395 } else { 1393 } else {
1396 err = netlink_unicast(xfrm_nl, resp_skb, 1394 err = nlmsg_unicast(xfrm_nl, resp_skb,
1397 NETLINK_CB(skb).pid, 1395 NETLINK_CB(skb).pid);
1398 MSG_DONTWAIT);
1399 } 1396 }
1400 } else { 1397 } else {
1401 xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid, 1398 xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid,
@@ -1525,8 +1522,7 @@ static int xfrm_get_ae(struct sk_buff *skb, struct nlmsghdr *nlh,
1525 1522
1526 if (build_aevent(r_skb, x, &c) < 0) 1523 if (build_aevent(r_skb, x, &c) < 0)
1527 BUG(); 1524 BUG();
1528 err = netlink_unicast(xfrm_nl, r_skb, 1525 err = nlmsg_unicast(xfrm_nl, r_skb, NETLINK_CB(skb).pid);
1529 NETLINK_CB(skb).pid, MSG_DONTWAIT);
1530 spin_unlock_bh(&x->lock); 1526 spin_unlock_bh(&x->lock);
1531 xfrm_state_put(x); 1527 xfrm_state_put(x);
1532 return err; 1528 return err;
@@ -1903,9 +1899,7 @@ static int xfrm_send_migrate(struct xfrm_selector *sel, u8 dir, u8 type,
1903 if (build_migrate(skb, m, num_migrate, sel, dir, type) < 0) 1899 if (build_migrate(skb, m, num_migrate, sel, dir, type) < 0)
1904 BUG(); 1900 BUG();
1905 1901
1906 NETLINK_CB(skb).dst_group = XFRMNLGRP_MIGRATE; 1902 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_MIGRATE, GFP_ATOMIC);
1907 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_MIGRATE,
1908 GFP_ATOMIC);
1909} 1903}
1910#else 1904#else
1911static int xfrm_send_migrate(struct xfrm_selector *sel, u8 dir, u8 type, 1905static int xfrm_send_migrate(struct xfrm_selector *sel, u8 dir, u8 type,
@@ -2061,8 +2055,7 @@ static int xfrm_exp_state_notify(struct xfrm_state *x, struct km_event *c)
2061 if (build_expire(skb, x, c) < 0) 2055 if (build_expire(skb, x, c) < 0)
2062 BUG(); 2056 BUG();
2063 2057
2064 NETLINK_CB(skb).dst_group = XFRMNLGRP_EXPIRE; 2058 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC);
2065 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC);
2066} 2059}
2067 2060
2068static int xfrm_aevent_state_notify(struct xfrm_state *x, struct km_event *c) 2061static int xfrm_aevent_state_notify(struct xfrm_state *x, struct km_event *c)
@@ -2079,8 +2072,7 @@ static int xfrm_aevent_state_notify(struct xfrm_state *x, struct km_event *c)
2079 if (build_aevent(skb, x, c) < 0) 2072 if (build_aevent(skb, x, c) < 0)
2080 BUG(); 2073 BUG();
2081 2074
2082 NETLINK_CB(skb).dst_group = XFRMNLGRP_AEVENTS; 2075 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_AEVENTS, GFP_ATOMIC);
2083 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_AEVENTS, GFP_ATOMIC);
2084} 2076}
2085 2077
2086static int xfrm_notify_sa_flush(struct km_event *c) 2078static int xfrm_notify_sa_flush(struct km_event *c)
@@ -2105,8 +2097,7 @@ static int xfrm_notify_sa_flush(struct km_event *c)
2105 2097
2106 nlmsg_end(skb, nlh); 2098 nlmsg_end(skb, nlh);
2107 2099
2108 NETLINK_CB(skb).dst_group = XFRMNLGRP_SA; 2100 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC);
2109 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC);
2110} 2101}
2111 2102
2112static inline int xfrm_sa_len(struct xfrm_state *x) 2103static inline int xfrm_sa_len(struct xfrm_state *x)
@@ -2175,8 +2166,7 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c)
2175 2166
2176 nlmsg_end(skb, nlh); 2167 nlmsg_end(skb, nlh);
2177 2168
2178 NETLINK_CB(skb).dst_group = XFRMNLGRP_SA; 2169 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC);
2179 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC);
2180 2170
2181nlmsg_failure: 2171nlmsg_failure:
2182rtattr_failure: 2172rtattr_failure:
@@ -2262,8 +2252,7 @@ static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
2262 if (build_acquire(skb, x, xt, xp, dir) < 0) 2252 if (build_acquire(skb, x, xt, xp, dir) < 0)
2263 BUG(); 2253 BUG();
2264 2254
2265 NETLINK_CB(skb).dst_group = XFRMNLGRP_ACQUIRE; 2255 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_ACQUIRE, GFP_ATOMIC);
2266 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_ACQUIRE, GFP_ATOMIC);
2267} 2256}
2268 2257
2269/* User gives us xfrm_user_policy_info followed by an array of 0 2258/* User gives us xfrm_user_policy_info followed by an array of 0
@@ -2371,8 +2360,7 @@ static int xfrm_exp_policy_notify(struct xfrm_policy *xp, int dir, struct km_eve
2371 if (build_polexpire(skb, xp, dir, c) < 0) 2360 if (build_polexpire(skb, xp, dir, c) < 0)
2372 BUG(); 2361 BUG();
2373 2362
2374 NETLINK_CB(skb).dst_group = XFRMNLGRP_EXPIRE; 2363 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC);
2375 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC);
2376} 2364}
2377 2365
2378static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *c) 2366static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *c)
@@ -2423,8 +2411,7 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *
2423 2411
2424 nlmsg_end(skb, nlh); 2412 nlmsg_end(skb, nlh);
2425 2413
2426 NETLINK_CB(skb).dst_group = XFRMNLGRP_POLICY; 2414 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC);
2427 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC);
2428 2415
2429nlmsg_failure: 2416nlmsg_failure:
2430rtattr_failure: 2417rtattr_failure:
@@ -2454,8 +2441,7 @@ static int xfrm_notify_policy_flush(struct km_event *c)
2454 2441
2455 nlmsg_end(skb, nlh); 2442 nlmsg_end(skb, nlh);
2456 2443
2457 NETLINK_CB(skb).dst_group = XFRMNLGRP_POLICY; 2444 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC);
2458 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC);
2459 2445
2460nlmsg_failure: 2446nlmsg_failure:
2461 kfree_skb(skb); 2447 kfree_skb(skb);
@@ -2520,8 +2506,7 @@ static int xfrm_send_report(u8 proto, struct xfrm_selector *sel,
2520 if (build_report(skb, proto, sel, addr) < 0) 2506 if (build_report(skb, proto, sel, addr) < 0)
2521 BUG(); 2507 BUG();
2522 2508
2523 NETLINK_CB(skb).dst_group = XFRMNLGRP_REPORT; 2509 return nlmsg_multicast(xfrm_nl, skb, 0, XFRMNLGRP_REPORT, GFP_ATOMIC);
2524 return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_REPORT, GFP_ATOMIC);
2525} 2510}
2526 2511
2527static struct xfrm_mgr netlink_mgr = { 2512static struct xfrm_mgr netlink_mgr = {