<div dir="ltr"><div dir="ltr">Hi Alan,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 4, 2019 at 2:34 PM Cudmore, Alan P. (GSFC-5820) <<a href="mailto:alan.p.cudmore@nasa.gov">alan.p.cudmore@nasa.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_-4276201722182821687WordSection1">
<p class="MsoNormal"><span style="font-size:11pt">I’m trying to get PPP working on SPARC/LEON3. I’m currently using RTEMS 4.11, but plan on switching to 5.x soon.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">While handshaking with a Linux PPP client, the LEON3 gets an unaligned memory trap in the GetMask function:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><a href="https://git.rtems.org/rtems/tree/cpukit/pppd/sys-rtems.c?h=4.11#n1299" target="_blank">https://git.rtems.org/rtems/tree/cpukit/pppd/sys-rtems.c?h=4.11#n1299</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">The second network interface returned by the ioctl(SIOGIFCONF) call is not aligned on a 4 byte boundary, so the pointer de-reference causes the trap.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">It looks like this was referenced in ticket 1401:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><a href="https://devel.rtems.org/ticket/1401" target="_blank">https://devel.rtems.org/ticket/1401</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Verdana,sans-serif;color:black;background:rgb(255,255,221)">NOTE: the caller, when unpacking the</span><span style="font-size:10pt;font-family:Verdana,sans-serif;color:black"><br>
<span style="background:rgb(255,255,221)">sequence of ifreqs is likely to encounter</span><br>
<span style="background:rgb(255,255,221)">the same problem (see separate bug report</span><br>
<span style="background:rgb(255,255,221)">filed for pppd)</span></span><span style="font-size:11pt"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">I could not find that ticket for pppd. Did anyone try to create a fix for this?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Is the best approach to try to fix the pppd GetMask function to avoid unaligned accesses?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u></span></p></div></div></blockquote><div><br></div><div>Yes, the best approach would seem to be coercing the value into an aligned reference and then extracting the bits you want to get.</div><div><br></div><div>A general solution could also be to implement trap-and-emulate for unaligned data accesses. I started writing code like this (about 5 years ago!), it is about 20-30 hours of coding/testing to be confident about the result.  Existing code is available in netbsd for deriving the exception handler, so most of the effort is to extract, simplify, refactor, and test that code in rtems-sparc.</div><div><br></div><div>Gedare</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4276201722182821687WordSection1"><p class="MsoNormal"><span style="font-size:11pt"> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Thanks,<br>
Alan<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
</div>
</div>

_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div>