2017-12-12 08:32:31

by Jia-Ju Bai

[permalink] [raw]
Subject: [BUG] drivers/input/misc/pcap: a possible sleep-in-atomic bug in pcap_keys_handler

According to drivers/input/misc/pcap_keys.c, the kernel module may sleep
in the interrupt handler.
The function call path is:
pcap_keys_handler (interrupt handler)
ezx_pcap_read
mutex_lock --> may sleep

I do not find a good way to fix it, so I only report.
This possible bug is found by my static analysis tool (DSAC) and checked
by my code review.


Thanks,
Jia-Ju Bai


2018-02-05 23:26:28

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [BUG] drivers/input/misc/pcap: a possible sleep-in-atomic bug in pcap_keys_handler

On Tue, Dec 12, 2017 at 04:32:01PM +0800, Jia-Ju Bai wrote:
> According to drivers/input/misc/pcap_keys.c, the kernel module may sleep in
> the interrupt handler.
> The function call path is:
> pcap_keys_handler (interrupt handler)
> ezx_pcap_read
> mutex_lock --> may sleep
>
> I do not find a good way to fix it, so I only report.
> This possible bug is found by my static analysis tool (DSAC) and checked by
> my code review.

Let's see if Daniel's email still work. I am not sure how it worked to
begin with, given that we've been taking that mutex since very
beginning, and pcap_isr_work() disables local interrupts...

Thanks.

--
Dmitry