<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>HDLC driver - dev_free_skb_irq causes Segfault</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">All,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">So</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">I</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">am in the process of debugging my newl</FONT><FONT SIZE=2 FACE="Arial">y</FONT><FONT SIZE=2 FACE="Arial"> established</FONT><FONT SIZE=2 FACE="Arial"> HDLC driver.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">M</FONT><FONT SIZE=2 FACE="Arial">ore</FONT> <FONT SIZE=2 FACE="Arial">or less modeled after a simplified gianfar / ucc_geth idea.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">H</FONT><FONT SIZE=2 FACE="Arial">owever,</FONT><FONT SIZE=2 FACE="Arial"> after loading, etc</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&#8230;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> and using</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">following commands</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">-&gt;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">i</FONT><FONT SIZE=2 FACE="Arial">nsmod</FONT> <FONT SIZE=2 FACE="Arial">hdlc-8360.ko</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">-&gt;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">sethdlc</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> hdlc0 hdlc-eth</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">-&gt; ifconfig hdlc0 up 192.168.1.100</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">All is well, and I</FONT> <FONT SIZE=2 FACE="Arial">am seeing IDL interrupts.</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">Great.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Now I go to ping an address like, </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">ping</FONT> <FONT SIZE=2 FACE="Arial">192.168.1.101</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I can see that I get the start_xmit function, the IRQ from the QE comes back and reports the TXBD as successfully sent.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Here is</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">t</FONT><FONT SIZE=2 FACE="Arial">he problem, when I goto free the skb</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> in the tx_handler</FONT><FONT SIZE=2 FACE="Arial">, I get</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">a </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&#8216;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Unable to Handle Kernel</FONT> <FONT SIZE=2 FACE="Arial">P</FONT><FONT SIZE=2 FACE="Arial">aging Request</FONT><FONT SIZE=2 FACE="Arial"> for data at address 0x00000000</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&#8217;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">E</FONT><FONT SIZE=2 FACE="Arial">ven</FONT> <FONT SIZE=2 FACE="Arial">though for the life of me, I can</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&#8217;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">t see any pointers that are at address zero.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I have checked the pointer value I am passing in, and indeed it is the exact same pointer I am</FONT> <FONT SIZE=2 FACE="Arial">receiving</FONT><FONT SIZE=2 FACE="Arial"> from the original </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">start</FONT><FONT SIZE=2 FACE="Arial">-xmit</FONT><FONT SIZE=2 FACE="Arial"> call..</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Are we s</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">u</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">pposed to</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">copy the skb?</FONT> <FONT SIZE=2 FACE="Arial">A</FONT><FONT SIZE=2 FACE="Arial">nd</FONT> <FONT SIZE=2 FACE="Arial">free it immediately</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> in</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">t</FONT><FONT SIZE=2 FACE="Arial">h</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial"> start</FONT><FONT SIZE=2 FACE="Arial">_</FONT><FONT SIZE=2 FACE="Arial">xmi</FONT><FONT SIZE=2 FACE="Arial">t?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Some special way to store the pointer?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> </SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I have tried</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">txbd-&gt;buf = skb-&gt;data</FONT><FONT SIZE=2 FACE="Arial">;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">txbd-&gt;buf =</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">virt_to_phys(</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">skb-&gt;data</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">)</FONT><FONT SIZE=2 FACE="Arial">;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">etc.. and various other</FONT> <FONT SIZE=2 FACE="Arial">w</FONT><FONT SIZE=2 FACE="Arial">a</FONT><FONT SIZE=2 FACE="Arial">y</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">s</FONT><FONT SIZE=2 FACE="Arial"> to</FONT><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">s</FONT><FONT SIZE=2 FACE="Arial">ave</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">that I have</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">seen in</FONT><FONT SIZE=2 FACE="Arial"></FONT>&nbsp;<FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">t</FONT><FONT SIZE=2 FACE="Arial">he</FONT><FONT SIZE=2 FACE="Arial"> gianfar and ucc</FONT><FONT SIZE=2 FACE="Arial">_</FONT><FONT SIZE=2 FACE="Arial">geth drivers</FONT><FONT SIZE=2 FACE="Arial">.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">M</FONT><FONT SIZE=2 FACE="Arial">y</FONT> <FONT SIZE=2 FACE="Arial">tx_sk_buff**</FONT><FONT SIZE=2 FACE="Arial"> is identical as alloced the same way</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&#8230;</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">A</FONT><FONT SIZE=2 FACE="Arial">nyone</FONT> <FONT SIZE=2 FACE="Arial">have any ideas?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">-Russ</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>