diff options
Diffstat (limited to 'kernel/bpf/devmap.c')
-rw-r--r-- | kernel/bpf/devmap.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c index 191b79948424..1e525d70f833 100644 --- a/kernel/bpf/devmap.c +++ b/kernel/bpf/devmap.c | |||
@@ -164,6 +164,9 @@ static void dev_map_free(struct bpf_map *map) | |||
164 | bpf_clear_redirect_map(map); | 164 | bpf_clear_redirect_map(map); |
165 | synchronize_rcu(); | 165 | synchronize_rcu(); |
166 | 166 | ||
167 | /* Make sure prior __dev_map_entry_free() have completed. */ | ||
168 | rcu_barrier(); | ||
169 | |||
167 | /* To ensure all pending flush operations have completed wait for flush | 170 | /* To ensure all pending flush operations have completed wait for flush |
168 | * bitmap to indicate all flush_needed bits to be zero on _all_ cpus. | 171 | * bitmap to indicate all flush_needed bits to be zero on _all_ cpus. |
169 | * Because the above synchronize_rcu() ensures the map is disconnected | 172 | * Because the above synchronize_rcu() ensures the map is disconnected |