<br><br><div class="gmail_quote">On Mon, Nov 28, 2011 at 12:19 PM, Vimal <span dir="ltr">&lt;<a href="mailto:j.vimal@gmail.com">j.vimal@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Rohan<br>
<br>
Yes, I understood this part, but I am wondering what is the purpose of<br>
this lock.   I am guessing it&#39;s to protect all network related<br>
operations from critical events, for e.g.: protecting a packet<br>
transmit during device removal, protecting routing table entry during<br>
route lookup, etc., but I can&#39;t find its precise documentation<br>
anywhere.   Thanks,<br>
<div><div></div><div class="h5"><br>
On 27 November 2011 22:44, rohan puri &lt;<a href="mailto:rohan.puri15@gmail.com">rohan.puri15@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Nov 27, 2011 at 10:37 PM, Vimal &lt;<a href="mailto:j.vimal@gmail.com">j.vimal@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; In the Linux networking code, I see a lot of comments that say &quot;Must<br>
&gt;&gt; be called with RTNL lock.&quot;<br>
&gt;&gt;<br>
&gt;&gt; What is this lock?  I tried searching for it but couldn&#39;t find any<br>
&gt;&gt; explanation on what it is...<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt; --<br>
&gt;&gt; Vimal<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
&gt; Hello Vimal,<br>
&gt; This is a mutex named rtnl_mutex. Refer file net/core/rtnetlink.c<br>
&gt; static DEFINE_MUTEX(rtnl_mutex);<br>
&gt;<br>
&gt; void rtnl_lock(void)<br>
&gt; {<br>
&gt;         mutex_lock(&amp;rtnl_mutex);<br>
&gt; }<br>
&gt; EXPORT_SYMBOL(rtnl_lock);<br>
&gt; Where ever you see those comments indicate that this mutex is to be held<br>
&gt; before execution of that code path.<br>
&gt; Regards,<br>
&gt; Rohan<br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
Vimal<br>
</font></blockquote></div>This lock is used to serialize changes to net_device instances from runtime events, conf changes<div><br></div><div>Refer book understanding Linux network internals for more details.</div><div><br>
</div><div>Regards,</div><div>Rohan Puri</div>