diff options
Diffstat (limited to 'kernel/bpf/xskmap.c')
| -rw-r--r-- | kernel/bpf/xskmap.c | 12 | 
1 files changed, 3 insertions, 9 deletions
diff --git a/kernel/bpf/xskmap.c b/kernel/bpf/xskmap.c index 9f8463afda9c..686d244e798d 100644 --- a/kernel/bpf/xskmap.c +++ b/kernel/bpf/xskmap.c @@ -154,7 +154,7 @@ void __xsk_map_flush(struct bpf_map *map)  static void *xsk_map_lookup_elem(struct bpf_map *map, void *key)  { -	return NULL; +	return ERR_PTR(-EOPNOTSUPP);  }  static int xsk_map_update_elem(struct bpf_map *map, void *key, void *value, @@ -192,11 +192,8 @@ static int xsk_map_update_elem(struct bpf_map *map, void *key, void *value,  	sock_hold(sock->sk);  	old_xs = xchg(&m->xsk_map[i], xs); -	if (old_xs) { -		/* Make sure we've flushed everything. */ -		synchronize_net(); +	if (old_xs)  		sock_put((struct sock *)old_xs); -	}  	sockfd_put(sock);  	return 0; @@ -212,11 +209,8 @@ static int xsk_map_delete_elem(struct bpf_map *map, void *key)  		return -EINVAL;  	old_xs = xchg(&m->xsk_map[k], NULL); -	if (old_xs) { -		/* Make sure we've flushed everything. */ -		synchronize_net(); +	if (old_xs)  		sock_put((struct sock *)old_xs); -	}  	return 0;  }  | 
