[parisc-linux] code 28 trap
willy@thepuffingroup.com
willy@thepuffingroup.com
Thu, 24 Feb 2000 22:49:34 -0500
On Thu, Feb 24, 2000 at 06:59:49PM -0800, Grant Grundler wrote:
>
> Hi folks,
> I'm getting a "Code 28" interrupt on my c3000.
> I've appended the full console output.
>
> IOAQ points to ip_rcv+156.
> GR02 points to net_bh+620
>
> 0xc01ca024 <ip_rcv+156>: ldw 0(sr0,r4),r25
>
> and GR4 == c7e8702e.
> GR4 is aligned on 2byte, not 4 byte which the ldw wants.
>
> I've reproduced the problem in another chunk of code:
> 0xc01fa82c <ic_bootp_recv+76>: ldw 0(sr0,r4),r25
>
> In this case: gr4 == c7f7e82e and gr2 == c01ce708 (net_bh+576)
Uh oh. We really need a kernel unaligned trap handler. Some of
the network protocols rely on that being handled right (yes, i know.
it sucks.) I was about to say `I really don't think this applies to
IP or BOOTP/IP', when I remembered...
http://boudicca.tux.org/hypermail/linux-kernel/2000week06/0092.html
There was a bug in 2.3.41, looks like it didn't get fixed in .42, that
caused things to get unaligned once in a while. Doh! Anyone want to
volunteer to write an unaligned trap handler...?