Lines Matching defs:pfk

81 static void pfkey_terminate_dump(struct pfkey_sock *pfk)
83 if (pfk->dump.dump) {
84 if (pfk->dump.skb) {
85 kfree_skb(pfk->dump.skb);
86 pfk->dump.skb = NULL;
88 pfk->dump.done(pfk);
89 pfk->dump.dump = NULL;
90 pfk->dump.done = NULL;
143 struct pfkey_sock *pfk;
156 pfk = pfkey_sk(sk);
157 mutex_init(&pfk->dump_lock);
231 struct pfkey_sock *pfk = pfkey_sk(sk);
238 if (pfk->promisc)
248 !pfk->registered)
270 static int pfkey_do_dump(struct pfkey_sock *pfk)
275 mutex_lock(&pfk->dump_lock);
276 if (!pfk->dump.dump) {
281 rc = pfk->dump.dump(pfk);
287 if (pfk->dump.skb) {
288 if (!pfkey_can_dump(&pfk->sk)) {
293 hdr = (struct sadb_msg *) pfk->dump.skb->data;
296 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE,
297 &pfk->sk, sock_net(&pfk->sk));
298 pfk->dump.skb = NULL;
301 pfkey_terminate_dump(pfk);
304 mutex_unlock(&pfk->dump_lock);
1687 struct pfkey_sock *pfk = pfkey_sk(sk);
1694 if (pfk->registered&(1<<hdr->sadb_msg_satype))
1696 pfk->registered |= (1<<hdr->sadb_msg_satype);
1707 pfk->registered &= ~(1<<hdr->sadb_msg_satype);
1788 struct pfkey_sock *pfk = ptr;
1792 if (!pfkey_can_dump(&pfk->sk))
1800 out_hdr->sadb_msg_version = pfk->dump.msg_version;
1806 out_hdr->sadb_msg_pid = pfk->dump.msg_portid;
1808 if (pfk->dump.skb)
1809 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE,
1810 &pfk->sk, sock_net(&pfk->sk));
1811 pfk->dump.skb = out_skb;
1816 static int pfkey_dump_sa(struct pfkey_sock *pfk)
1818 struct net *net = sock_net(&pfk->sk);
1819 return xfrm_state_walk(net, &pfk->dump.u.state, dump_sa, (void *) pfk);
1822 static void pfkey_dump_sa_done(struct pfkey_sock *pfk)
1824 struct net *net = sock_net(&pfk->sk);
1826 xfrm_state_walk_done(&pfk->dump.u.state, net);
1833 struct pfkey_sock *pfk = pfkey_sk(sk);
1835 mutex_lock(&pfk->dump_lock);
1836 if (pfk->dump.dump != NULL) {
1837 mutex_unlock(&pfk->dump_lock);
1843 mutex_unlock(&pfk->dump_lock);
1854 mutex_unlock(&pfk->dump_lock);
1859 mutex_unlock(&pfk->dump_lock);
1872 pfk->dump.msg_version = hdr->sadb_msg_version;
1873 pfk->dump.msg_portid = hdr->sadb_msg_pid;
1874 pfk->dump.dump = pfkey_dump_sa;
1875 pfk->dump.done = pfkey_dump_sa_done;
1876 xfrm_state_walk_init(&pfk->dump.u.state, proto, filter);
1877 mutex_unlock(&pfk->dump_lock);
1879 return pfkey_do_dump(pfk);
1884 struct pfkey_sock *pfk = pfkey_sk(sk);
1892 pfk->promisc = satype;
2689 struct pfkey_sock *pfk = ptr;
2694 if (!pfkey_can_dump(&pfk->sk))
2708 out_hdr->sadb_msg_version = pfk->dump.msg_version;
2713 out_hdr->sadb_msg_pid = pfk->dump.msg_portid;
2715 if (pfk->dump.skb)
2716 pfkey_broadcast(pfk->dump.skb, GFP_ATOMIC, BROADCAST_ONE,
2717 &pfk->sk, sock_net(&pfk->sk));
2718 pfk->dump.skb = out_skb;
2723 static int pfkey_dump_sp(struct pfkey_sock *pfk)
2725 struct net *net = sock_net(&pfk->sk);
2726 return xfrm_policy_walk(net, &pfk->dump.u.policy, dump_sp, (void *) pfk);
2729 static void pfkey_dump_sp_done(struct pfkey_sock *pfk)
2731 struct net *net = sock_net((struct sock *)pfk);
2733 xfrm_policy_walk_done(&pfk->dump.u.policy, net);
2738 struct pfkey_sock *pfk = pfkey_sk(sk);
2740 mutex_lock(&pfk->dump_lock);
2741 if (pfk->dump.dump != NULL) {
2742 mutex_unlock(&pfk->dump_lock);
2746 pfk->dump.msg_version = hdr->sadb_msg_version;
2747 pfk->dump.msg_portid = hdr->sadb_msg_pid;
2748 pfk->dump.dump = pfkey_dump_sp;
2749 pfk->dump.done = pfkey_dump_sp_done;
2750 xfrm_policy_walk_init(&pfk->dump.u.policy, XFRM_POLICY_TYPE_MAIN);
2751 mutex_unlock(&pfk->dump_lock);
2753 return pfkey_do_dump(pfk);
3713 struct pfkey_sock *pfk = pfkey_sk(sk);
3740 if (pfk->dump.dump != NULL &&
3742 pfkey_do_dump(pfk);