RE: I want to sleep while holding a mutex

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> Are you trying to use the mutex during a interrupt handler as you can't you
> need something atomic or not able to sleep like a spinlock.
> Nick
 
I use mutex during FIFO burst write or burst read. I don't want other processes to mess up the FIFO access.
spinlock is not for long interval I understand.
Chan


보낸 사람 : "nick" <xerofoify@xxxxxxxxx>
보낸 날짜 : 2015-06-05 21:34:25 ( +09:00 )
받는 사람 : 김찬 <ckim@xxxxxxxxxx>, kernelnewbies@xxxxxxxxxxxxxxxxx <kernelnewbies@xxxxxxxxxxxxxxxxx>
참조 :
제목 : Re: I want to sleep while holding a mutex



On 2015-06-05 08:30 AM, Chan Kim wrote:
> Hello,
> I need to write to and read from a Ethernet chip's FIFO and for that I want to use DMA controller. So I modified an existing driver and made the process to sleep using wait_event_interruptible after triggering DMA transfer and made it woken up by ISR using wake_up_interruptible. My problem is that the original driver was using spinlock to protect the FIFO access. But as all know, while holding spinlock, I should not sleep. So I tried replacing spinlock with mutex. (Because, I might sleep while acquiring the mutex, and after getting the mutex, I'll sleep again after DMA trigger. I get woken up by the ISR, and I'll release the mutex. No problem! I thought. ) But I still get this 'scheduling while atomic BUG'. The question is : I need to go to sleep until DMA completion while holding a lock (for FIFO read and write). Isn't it ok to sleep while holding a mutex?
> Best regards,
> Chan Kim
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
Are you trying to use the mutex during a interrupt handler as you can't you need something
atomic or not able to sleep like a spinlock.
Nick
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux