aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/bpf/sockmap.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/bpf/sockmap.c b/kernel/bpf/sockmap.c
index d2bda5aa25d7..8ddf326b3ade 100644
--- a/kernel/bpf/sockmap.c
+++ b/kernel/bpf/sockmap.c
@@ -211,6 +211,12 @@ static void bpf_tcp_close(struct sock *sk, long timeout)
211 close_fun = psock->save_close; 211 close_fun = psock->save_close;
212 212
213 write_lock_bh(&sk->sk_callback_lock); 213 write_lock_bh(&sk->sk_callback_lock);
214 if (psock->cork) {
215 free_start_sg(psock->sock, psock->cork);
216 kfree(psock->cork);
217 psock->cork = NULL;
218 }
219
214 list_for_each_entry_safe(md, mtmp, &psock->ingress, list) { 220 list_for_each_entry_safe(md, mtmp, &psock->ingress, list) {
215 list_del(&md->list); 221 list_del(&md->list);
216 free_start_sg(psock->sock, md); 222 free_start_sg(psock->sock, md);