Messages in this thread | | | From | Jia-Ju Bai <> | Subject | [BUG] mm: backing-dev: a possible sleep-in-atomic-context bug in cgwb_create() | Date | Thu, 21 Jun 2018 11:02:58 +0800 |
| |
The kernel may sleep with holding a spinlock. The function call path (from bottom to top) in Linux-4.16.7 is:
[FUNC] schedule lib/percpu-refcount.c, 222: schedule in __percpu_ref_switch_mode lib/percpu-refcount.c, 339: __percpu_ref_switch_mode in percpu_ref_kill_and_confirm ./include/linux/percpu-refcount.h, 127: percpu_ref_kill_and_confirm in percpu_ref_kill mm/backing-dev.c, 545: percpu_ref_kill in cgwb_kill mm/backing-dev.c, 576: cgwb_kill in cgwb_create mm/backing-dev.c, 573: _raw_spin_lock_irqsave in cgwb_create
This bug is found by my static analysis tool (DSAC-2) and checked by my code review.
I do not know how to correctly fix this bug, so I just report them. Maybe cgwb_kill() should not be called with holding a spinlock.
Best wishes, Jia-Ju Bai
| |