<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div id="ezFormProc_div" style="FONT-SIZE: 10pt; FONT-FAMILY: 굴림">
<div id="msgbody">
<div>
<div style="LINE-HEIGHT: 15pt">&nbsp;</div>
<div style="LINE-HEIGHT: 15pt">&gt; Are you trying to use the mutex during a interrupt handler as you can't you</div>
<div style="LINE-HEIGHT: 15pt">&gt; need something atomic or not able to sleep like a spinlock.</div>
<div style="LINE-HEIGHT: 15pt">&gt; Nick</div>
<div style="LINE-HEIGHT: 15pt">&nbsp;</div>
<div style="LINE-HEIGHT: 15pt">I use mutex during FIFO burst write or burst read. I don't want other processes to mess up the FIFO access.
</div>
<div style="LINE-HEIGHT: 15pt">spinlock is not for long interval I understand.</div>
<div style="LINE-HEIGHT: 15pt">Chan<br>
</div>
<div id="MailSignSent" style="LINE-HEIGHT: 15pt"><br>
</div>
<div id="ORGMAIL_CONTENT" style="LINE-HEIGHT: 15pt">
<hr tabindex="-1">
<b>보낸 사람 : </b>&quot;nick&quot; &lt;xerofoify@gmail.com&gt;<br>
<b>보낸 날짜 : </b>2015-06-05 21:34:25 ( &#43;09:00 )<br>
<b>받는 사람 : </b>김찬 &lt;ckim@etri.re.kr&gt;, kernelnewbies@kernelnewbies.org &lt;kernelnewbies@kernelnewbies.org&gt;<br>
<b>참조 : </b><br>
<b>제목 : </b>Re: I want to sleep while holding a mutex<br>
<br>
<br>
<br>
On 2015-06-05 08:30 AM, Chan Kim wrote:<br>
&gt; Hello,<br>
&gt; 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?<br>
&gt; Best regards,<br>
&gt; Chan Kim<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; Kernelnewbies@kernelnewbies.org<br>
&gt; http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies<br>
&gt; <br>
Are you trying to use the mutex during a interrupt handler as you can't you need something<br>
atomic or not able to sleep like a spinlock.<br>
Nick<br>
</div>
</div>
</div>
</div>
</body>
</html>