<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"><br>
Hello, </div>
<div style="LINE-HEIGHT: 15pt">Ok,I know&nbsp;the thing in my email title&nbsp;should be avoided but I have this basic question (I'm still a newbie).</div>
<div style="LINE-HEIGHT: 15pt">I'm modifying smsc911x Ethernet driver so that writing to/readng from the FIFO can be done by our own DMA controller.
</div>
<div style="LINE-HEIGHT: 15pt">Since FIFO should not be messed up, the original driver uses spinlock during the FIFO burst access. I wanted to do this FIFO access using DMA, so I changed some code of the FIFO access code to use DMA and inserted wait_event_interruptible
 to go to sleep (that's bad) and this caused BUG : scheduling while atomic.</div>
<div style="LINE-HEIGHT: 15pt">I could separate it before holding the spinlock to avoid this(DMA and PIO loop). But what if during the DMA, some other process tries to access FIFO? (other network processes can access the network anyway). How do people prevent
 this 'FIFO access by other process while in DMA' ? I have to sleep during DMA. Any standard method? Any help will be appreciated.</div>
<div style="LINE-HEIGHT: 15pt">Best regards,</div>
<div style="LINE-HEIGHT: 15pt">Chan Kim</div>
<div style="LINE-HEIGHT: 15pt"><br>
&nbsp;</div>
<div id="MailSignSent" style="LINE-HEIGHT: 15pt"></div>
<div style="LINE-HEIGHT: 15pt"><br>
</div>
</div>
</div>
</div>
</body>
</html>