skmsg: Get rid of struct sk_psock_parser
[linux-2.6-block.git] / net / core / sock_map.c
index ee3334dd3a384dcff62b4bea508148ce52e9bc9c..1a28a5c2c61ee39381c83c95e4096dc667b158bb 100644 (file)
@@ -148,9 +148,9 @@ static void sock_map_del_link(struct sock *sk,
                        struct bpf_map *map = link->map;
                        struct bpf_stab *stab = container_of(map, struct bpf_stab,
                                                             map);
-                       if (psock->parser.enabled && stab->progs.skb_parser)
+                       if (psock->saved_data_ready && stab->progs.skb_parser)
                                strp_stop = true;
-                       if (psock->parser.enabled && stab->progs.skb_verdict)
+                       if (psock->saved_data_ready && stab->progs.skb_verdict)
                                verdict_stop = true;
                        list_del(&link->list);
                        sk_psock_free_link(link);
@@ -283,14 +283,14 @@ static int sock_map_link(struct bpf_map *map, struct sk_psock_progs *progs,
                goto out_drop;
 
        write_lock_bh(&sk->sk_callback_lock);
-       if (skb_parser && skb_verdict && !psock->parser.enabled) {
+       if (skb_parser && skb_verdict && !psock->saved_data_ready) {
                ret = sk_psock_init_strp(sk, psock);
                if (ret)
                        goto out_unlock_drop;
                psock_set_prog(&psock->progs.skb_verdict, skb_verdict);
                psock_set_prog(&psock->progs.skb_parser, skb_parser);
                sk_psock_start_strp(sk, psock);
-       } else if (!skb_parser && skb_verdict && !psock->parser.enabled) {
+       } else if (!skb_parser && skb_verdict && !psock->saved_data_ready) {
                psock_set_prog(&psock->progs.skb_verdict, skb_verdict);
                sk_psock_start_verdict(sk,psock);
        }