struct netdev_rx_queue *rxqueue;
        struct xdp_buff xdp = {};
        u32 retval, duration;
 +      struct xdp_md *ctx;
        u32 max_data_sz;
        void *data;
 -      int ret;
 +      int ret = -EINVAL;
  
+       if (prog->expected_attach_type == BPF_XDP_DEVMAP ||
+           prog->expected_attach_type == BPF_XDP_CPUMAP)
+               return -EINVAL;
+       if (kattr->test.ctx_in || kattr->test.ctx_out)
+               return -EINVAL;
 +      ctx = bpf_ctx_init(kattr, sizeof(struct xdp_md));
 +      if (IS_ERR(ctx))
 +              return PTR_ERR(ctx);
 +
 +      if (ctx) {
 +              /* There can't be user provided data before the meta data */
 +              if (ctx->data_meta || ctx->data_end != size ||
 +                  ctx->data > ctx->data_end ||
 +                  unlikely(xdp_metalen_invalid(ctx->data)))
 +                      goto free_ctx;
 +              /* Meta data is allocated from the headroom */
 +              headroom -= ctx->data;
 +      }
  
        /* XDP have extra tailroom as (most) drivers use full page */
        max_data_sz = 4096 - headroom - tailroom;
 
        net->ipv4.sysctl_tcp_comp_sack_slack_ns = 100 * NSEC_PER_USEC;
        net->ipv4.sysctl_tcp_comp_sack_nr = 44;
        net->ipv4.sysctl_tcp_fastopen = TFO_CLIENT_ENABLE;
-       net->ipv4.sysctl_tcp_fastopen_blackhole_timeout = 60 * 60;
 -      spin_lock_init(&net->ipv4.tcp_fastopen_ctx_lock);
+       net->ipv4.sysctl_tcp_fastopen_blackhole_timeout = 0;
        atomic_set(&net->ipv4.tfo_active_disable_times, 0);
  
        /* Reno is always built in */