diff options
author | David S. Miller <davem@davemloft.net> | 2019-02-16 22:34:07 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-02-16 22:34:07 -0800 |
commit | 6e1077f51436e5ca9c415aec503333de1187b89a (patch) | |
tree | 5c75c420f3a57a7c9e33ae9e7087b59db5a578a7 /kernel/bpf/stackmap.c | |
parent | 8681ef1f3d295bd3600315325f3b3396d76d02f6 (diff) | |
parent | 1910faebf61d85a5b7138c0c1c600672e41f82a3 (diff) | |
download | blackbird-obmc-linux-6e1077f51436e5ca9c415aec503333de1187b89a.tar.gz blackbird-obmc-linux-6e1077f51436e5ca9c415aec503333de1187b89a.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
Alexei Starovoitov says:
====================
pull-request: bpf 2019-02-16
The following pull-request contains BPF updates for your *net* tree.
The main changes are:
1) fix lockdep false positive in bpf_get_stackid(), from Alexei.
2) several AF_XDP fixes, from Bjorn, Magnus, Davidlohr.
3) fix narrow load from struct bpf_sock, from Martin.
4) mips JIT fixes, from Paul.
5) gso handling fix in bpf helpers, from Willem.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/bpf/stackmap.c')
-rw-r--r-- | kernel/bpf/stackmap.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c index d43b14535827..950ab2f28922 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -44,7 +44,7 @@ static void do_up_read(struct irq_work *entry) struct stack_map_irq_work *work; work = container_of(entry, struct stack_map_irq_work, irq_work); - up_read(work->sem); + up_read_non_owner(work->sem); work->sem = NULL; } @@ -338,6 +338,12 @@ static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, } else { work->sem = ¤t->mm->mmap_sem; irq_work_queue(&work->irq_work); + /* + * The irq_work will release the mmap_sem with + * up_read_non_owner(). The rwsem_release() is called + * here to release the lock from lockdep's perspective. + */ + rwsem_release(¤t->mm->mmap_sem.dep_map, 1, _RET_IP_); } } |