Re: PATCH : ppp + big-endian = kernel crash

From: Philippe De Muyter
Date: Sun May 29 2005 - 16:40:33 EST


I have also sent this message to uclinux-dev, where it can be of interest.

David S. Miller wrote :
> From: "Philippe De Muyter" <phdm@xxxxxxxxx>
> Date: Sun, 29 May 2005 21:48:42 +0200 (CEST)
>
> > + /* If the address of the packet is odd now, fix it. */
> > + if ((unsigned long)skb->data & 1) {
> > + unsigned char *p;
>
> And now it will crash when a packet is only 2-byte aligned
> when the input packet processing does the first access
> to the IP address in the packet header.

Actually, my fix has been tested extensively, and m68k's won't crash when
accessing 4-bytes words on only 2-byte aligned addresses. If you mean
that I moved the packet in the wrong direction to get the best alignment,
this can easily be fixed.

>
> Please make your m68k port handle unaligned memory accesses
> in kernel mode properly instead.
>

Do you mean that ip_rcv may not assume that packets are properly aligned ?

And some non-mmu m68k (Coldfires) do not provide enough information in
exception frames to restart instructions on an address error in the general
case.

Best regards

Philippe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/