Re: [PATCH] dmaengine: bam_dma: fix return of bam_dma_irq()
From: Vinod Koul
Date: Fri Dec 11 2020 - 10:15:21 EST
On 07-12-20, 12:03, Parth Y Shah wrote:
> While performing suspend/resume, we were getting below kernel crash.
>
> [ 54.541672] [FTS][Info]gesture suspend...
> [ 54.605256] [FTS][Error][GESTURE]Enter into gesture(suspend) failed!
> [ 54.605256]
> [ 58.345850] irq event 10: bogus return value fffffff3
> ......
>
> [ 58.345966] [<ffff0000080830f0>] el1_irq+0xb0/0x124
> [ 58.345971] [<ffff000008085360>] arch_cpu_idle+0x10/0x18
> [ 58.345975] [<ffff0000081077f4>] do_idle+0x1ac/0x1e0
> [ 58.345979] [<ffff0000081079c8>] cpu_startup_entry+0x20/0x28
> [ 58.345983] [<ffff000008a80ed0>] rest_init+0xd0/0xdc
> [ 58.345988] [<ffff0000091c0b48>] start_kernel+0x390/0x3a4
> [ 58.345990] handlers:
> [ 58.345994] [<ffff0000085120d0>] bam_dma_irq
>
> The reason for the crash we found is, bam_dma_irq() was returning
> negative value when the device resumes in some conditions.
>
> In addition, the irq handler should have one of the below return values.
>
> IRQ_NONE interrupt was not from this device or was not handled
> IRQ_HANDLED interrupt was handled by this device
> IRQ_WAKE_THREAD handler requests to wake the handler thread
>
> Therefore, to resolve this crash, we have changed the return value to
> IRQ_NONE.
Applied, thanks
--
~Vinod