Re: BUG: sleeping function called from invalid context at kernel/rtmutex.c:644
From: Remy Bohmer <hidden>
Date: 2011-08-18 18:15:18
Hi Roshni, 2011/8/18 Rosh shah [off-list ref]:
Hi, I have ported Davinci DM6467T support to the 2.6.33.9-rt for a project. I am running into the following issue every time I run the encode application gets a DMA interrupt. I have referred to the various other instances of the same issue on older RT kernels, but haven't gathered a solution for the same. Kindly help me understand the issue / throw some light on how I can approach the solution. Any thoughts are greatly appreciated. Aug 16 14:44:01 dm6467t-evm user.debug kernel: dma complete <INSERTED BY B.J this is when the DMA ISR is called> Aug 16 14:44:01 dm6467t-evm user.err kernel: BUG: sleeping function called from invalid context at kernel/rtmutex.c:644
Looking at the backtrace, first guess: the dmaIsr() function tries to call complete() with preemption and/or interrupts disabled. In that case it runs into a regular spinlock that is converted to a rt_mutex which, due to its nature, might sleep, which on its turn is illegal in that context. Kind regards, Remy -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html