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
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
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
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
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