2018-09-15 08:52:35

by Jia-Ju Bai

[permalink] [raw]
Subject: [BUG] mfd: ezx-pcap: Possible sleep-in-atomic-context bugs in pcap_adc_irq()

The driver may sleep in an interrupt handler.
The function call paths (from bottom to top) in Linux-4.17 are:

[FUNC] mutex_lock_nested
drivers/mfd/ezx-pcap.c, 272:
mutex_lock_nested in pcap_adc_irq (interrupt handler)

[FUNC] mutex_lock_nested
drivers/mfd/ezx-pcap.c, 100:
mutex_lock_nested in ezx_pcap_read
drivers/mfd/ezx-pcap.c, 281:
ezx_pcap_read in pcap_adc_irq (interrupt handler)

[FUNC] mutex_lock_nested
drivers/mfd/ezx-pcap.c, 85:
mutex_lock_nested in ezx_pcap_write
drivers/mfd/ezx-pcap.c, 285:
ezx_pcap_write in pcap_adc_irq (interrupt handler)

[FUNC] mutex_lock_nested
drivers/mfd/ezx-pcap.c, 244:
mutex_lock_nested in pcap_adc_trigger
drivers/mfd/ezx-pcap.c, 299:
pcap_adc_trigger in pcap_adc_irq (interrupt handler)

These bugs are found by my static analysis tool DSAC.


Best wishes,
Jia-Ju Bai


2018-09-17 01:04:14

by Lee Jones

[permalink] [raw]
Subject: Re: [BUG] mfd: ezx-pcap: Possible sleep-in-atomic-context bugs in pcap_adc_irq()

On Sat, 15 Sep 2018, Jia-Ju Bai wrote:

> The driver may sleep in an interrupt handler.
> The function call paths (from bottom to top) in Linux-4.17 are:
>
> [FUNC] mutex_lock_nested
> drivers/mfd/ezx-pcap.c, 272:
> mutex_lock_nested in pcap_adc_irq (interrupt handler)
>
> [FUNC] mutex_lock_nested
> drivers/mfd/ezx-pcap.c, 100:
> mutex_lock_nested in ezx_pcap_read
> drivers/mfd/ezx-pcap.c, 281:
> ezx_pcap_read in pcap_adc_irq (interrupt handler)
>
> [FUNC] mutex_lock_nested
> drivers/mfd/ezx-pcap.c, 85:
> mutex_lock_nested in ezx_pcap_write
> drivers/mfd/ezx-pcap.c, 285:
> ezx_pcap_write in pcap_adc_irq (interrupt handler)
>
> [FUNC] mutex_lock_nested
> drivers/mfd/ezx-pcap.c, 244:
> mutex_lock_nested in pcap_adc_trigger
> drivers/mfd/ezx-pcap.c, 299:
> pcap_adc_trigger in pcap_adc_irq (interrupt handler)
>
> These bugs are found by my static analysis tool DSAC.

Not sure what you want me to do with this.

Do you have something in mind?

--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

2018-09-17 02:49:10

by Jia-Ju Bai

[permalink] [raw]
Subject: Re: [BUG] mfd: ezx-pcap: Possible sleep-in-atomic-context bugs in pcap_adc_irq()



On 2018/9/17 9:03, Lee Jones wrote:
> On Sat, 15 Sep 2018, Jia-Ju Bai wrote:
>
>> The driver may sleep in an interrupt handler.
>> The function call paths (from bottom to top) in Linux-4.17 are:
>>
>> [FUNC] mutex_lock_nested
>> drivers/mfd/ezx-pcap.c, 272:
>> mutex_lock_nested in pcap_adc_irq (interrupt handler)
>>
>> [FUNC] mutex_lock_nested
>> drivers/mfd/ezx-pcap.c, 100:
>> mutex_lock_nested in ezx_pcap_read
>> drivers/mfd/ezx-pcap.c, 281:
>> ezx_pcap_read in pcap_adc_irq (interrupt handler)
>>
>> [FUNC] mutex_lock_nested
>> drivers/mfd/ezx-pcap.c, 85:
>> mutex_lock_nested in ezx_pcap_write
>> drivers/mfd/ezx-pcap.c, 285:
>> ezx_pcap_write in pcap_adc_irq (interrupt handler)
>>
>> [FUNC] mutex_lock_nested
>> drivers/mfd/ezx-pcap.c, 244:
>> mutex_lock_nested in pcap_adc_trigger
>> drivers/mfd/ezx-pcap.c, 299:
>> pcap_adc_trigger in pcap_adc_irq (interrupt handler)
>>
>> These bugs are found by my static analysis tool DSAC.
> Not sure what you want me to do with this.
>
> Do you have something in mind?
>

I find some possible bugs in this driver, but I do not know how to
correctly fix them...
Could you find a good solution?


Best wishes,
Jia-Ju Bai

2018-10-09 09:09:13

by Lee Jones

[permalink] [raw]
Subject: Re: [BUG] mfd: ezx-pcap: Possible sleep-in-atomic-context bugs in pcap_adc_irq()

On Mon, 17 Sep 2018, Jia-Ju Bai wrote:

>
>
> On 2018/9/17 9:03, Lee Jones wrote:
> > On Sat, 15 Sep 2018, Jia-Ju Bai wrote:
> >
> > > The driver may sleep in an interrupt handler.
> > > The function call paths (from bottom to top) in Linux-4.17 are:
> > >
> > > [FUNC] mutex_lock_nested
> > > drivers/mfd/ezx-pcap.c, 272:
> > > mutex_lock_nested in pcap_adc_irq (interrupt handler)
> > >
> > > [FUNC] mutex_lock_nested
> > > drivers/mfd/ezx-pcap.c, 100:
> > > mutex_lock_nested in ezx_pcap_read
> > > drivers/mfd/ezx-pcap.c, 281:
> > > ezx_pcap_read in pcap_adc_irq (interrupt handler)
> > >
> > > [FUNC] mutex_lock_nested
> > > drivers/mfd/ezx-pcap.c, 85:
> > > mutex_lock_nested in ezx_pcap_write
> > > drivers/mfd/ezx-pcap.c, 285:
> > > ezx_pcap_write in pcap_adc_irq (interrupt handler)
> > >
> > > [FUNC] mutex_lock_nested
> > > drivers/mfd/ezx-pcap.c, 244:
> > > mutex_lock_nested in pcap_adc_trigger
> > > drivers/mfd/ezx-pcap.c, 299:
> > > pcap_adc_trigger in pcap_adc_irq (interrupt handler)
> > >
> > > These bugs are found by my static analysis tool DSAC.
> > Not sure what you want me to do with this.
> >
> > Do you have something in mind?
> >
>
> I find some possible bugs in this driver, but I do not know how to correctly
> fix them...
> Could you find a good solution?

If you have found bugs and do not intend on fixing them, please report
them via the 'File a Bug' option here:

https://bugzilla.kernel.org/

--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

2018-10-10 07:33:03

by Jia-Ju Bai

[permalink] [raw]
Subject: Re: [BUG] mfd: ezx-pcap: Possible sleep-in-atomic-context bugs in pcap_adc_irq()



On 2018/10/9 17:07, Lee Jones wrote:
> On Mon, 17 Sep 2018, Jia-Ju Bai wrote:
>
>>
>> On 2018/9/17 9:03, Lee Jones wrote:
>>> On Sat, 15 Sep 2018, Jia-Ju Bai wrote:
>>>
>>>> The driver may sleep in an interrupt handler.
>>>> The function call paths (from bottom to top) in Linux-4.17 are:
>>>>
>>>> [FUNC] mutex_lock_nested
>>>> drivers/mfd/ezx-pcap.c, 272:
>>>> mutex_lock_nested in pcap_adc_irq (interrupt handler)
>>>>
>>>> [FUNC] mutex_lock_nested
>>>> drivers/mfd/ezx-pcap.c, 100:
>>>> mutex_lock_nested in ezx_pcap_read
>>>> drivers/mfd/ezx-pcap.c, 281:
>>>> ezx_pcap_read in pcap_adc_irq (interrupt handler)
>>>>
>>>> [FUNC] mutex_lock_nested
>>>> drivers/mfd/ezx-pcap.c, 85:
>>>> mutex_lock_nested in ezx_pcap_write
>>>> drivers/mfd/ezx-pcap.c, 285:
>>>> ezx_pcap_write in pcap_adc_irq (interrupt handler)
>>>>
>>>> [FUNC] mutex_lock_nested
>>>> drivers/mfd/ezx-pcap.c, 244:
>>>> mutex_lock_nested in pcap_adc_trigger
>>>> drivers/mfd/ezx-pcap.c, 299:
>>>> pcap_adc_trigger in pcap_adc_irq (interrupt handler)
>>>>
>>>> These bugs are found by my static analysis tool DSAC.
>>> Not sure what you want me to do with this.
>>>
>>> Do you have something in mind?
>>>
>> I find some possible bugs in this driver, but I do not know how to correctly
>> fix them...
>> Could you find a good solution?
> If you have found bugs and do not intend on fixing them, please report
> them via the 'File a Bug' option here:
>
> https://bugzilla.kernel.org/
>

Okay, thanks.


Best wishes,
Jia-Ju Bai