<p dir="ltr"><br>
On Mar 11, 2014 7:57 AM, &quot;Matt Davis&quot; &lt;<a href="mailto:mattdavis9@gmail.com">mattdavis9@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; I have a kernel module that communicates to a PCI device via DMA.  The<br>
&gt; module allocates the shared memory using dma_alloc_coherent().  When<br>
&gt; the module is unloaded, a call to dma_free_coherent() is executed.<br>
&gt;<br>
&gt; My question is, since the DMA memory is not explicitly zeroed before<br>
&gt; deallocation, is there a chance that the PCI device could still read<br>
&gt; (non-zeroed data) and act upon the DMA memory after the module unloads<br>
&gt; and calls dma_free_coherent()?<br>
&gt;<br>
Ideally you should stop the device before freeing the memory.<br>
If device is allowed to run and access the memory after memory is free this may leads to memory coruption that would be hard to debug.</p>
<p dir="ltr">&gt; Thanks!<br>
&gt;<br>
&gt; -Matt<br>
&gt;<br>
&gt;<br>
-Chetan _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</p>