diff --git a/kernel/bpf/ringbuf.c b/kernel/bpf/ringbuf.c index 984f4772a01e2e674babcf3bdffe53e5569d5b67..3cc55c26813799a5bfdd9ec235c8ee48a5d4c085 100644 --- a/kernel/bpf/ringbuf.c +++ b/kernel/bpf/ringbuf.c @@ -207,6 +207,8 @@ static void bpf_ringbuf_free(struct bpf_ringbuf *rb) struct page **pages = rb->pages; int i, nr_pages = rb->nr_pages; + irq_work_sync(&rb->work); + vunmap(rb); for (i = 0; i < nr_pages; i++) __free_page(pages[i]);