Re: Misalignment, MIPS, and ip_hdr(skb)->version
From: David Miller <davem@davemloft.net>
Date: 2016-12-08 00:37:20
Also in:
linux-mips, lkml
From: David Miller <davem@davemloft.net>
Date: 2016-12-08 00:37:20
Also in:
linux-mips, lkml
From: "Jason A. Donenfeld" <Jason@zx2c4.com> Date: Thu, 8 Dec 2016 01:29:42 +0100
On Wed, Dec 7, 2016 at 8:52 PM, David Miller [off-list ref] wrote:quoted
The only truly difficult case to handle is GRE encapsulation. Is that the situation you are running into? If not, please figure out what the header configuration looks like in the case that hits for you, and what the originating device is just in case it is a device driver issue.My case is my own driver and my own protocol, which uses a 13 byte header. I can, if absolutely necessary, change the protocol to add another byte of padding. Or I can choose not to decrypt in place but rather use a different trick, like overwriting the header during decryption, though this removes some of the scatterwalk optimizations when src and dst are the same. Or something else. I wrote the top email of this thread inquiring about just exactly how bad it is to call netif_rx(skb) when skb->data is unaligned.
You really have to land the IP header on a proper 4 byte boundary. I would suggest pushing 3 dummy garbage bytes of padding at the front or the end of your header.