diff options
| author | Sean Paul <seanpaul@chromium.org> | 2019-03-06 09:22:18 -0500 |
|---|---|---|
| committer | Sean Paul <seanpaul@chromium.org> | 2019-03-06 09:22:18 -0500 |
| commit | cd7d3a1bb42e0756b17ccfafbd956ca7ed757846 (patch) | |
| tree | fb76fd0ccaaaa3f27ef0a06ecf3d04ebe9d4025d /kernel/bpf/stackmap.c | |
| parent | drm/vc4: Add a debugfs entry to disable/enable the load tracker (diff) | |
| parent | Merge tag 'drm-misc-fixes-2019-02-22' of git://anongit.freedesktop.org/drm/dr... (diff) | |
| download | linux-cd7d3a1bb42e0756b17ccfafbd956ca7ed757846.tar.gz linux-cd7d3a1bb42e0756b17ccfafbd956ca7ed757846.zip | |
Merge drm/drm-next into drm-misc-next
Picking up v5.0 + missed misc-fixes from last release
Signed-off-by: Sean Paul <seanpaul@chromium.org>
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_); } } |
