[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20161207.193716.50344961208535056.davem@davemloft.net>
Date: Wed, 07 Dec 2016 19:37:16 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: Jason@...c4.com
Cc: dave.taht@...il.com, netdev@...r.kernel.org,
linux-mips@...ux-mips.org, linux-kernel@...r.kernel.org,
wireguard@...ts.zx2c4.com
Subject: Re: Misalignment, MIPS, and ip_hdr(skb)->version
From: "Jason A. Donenfeld" <Jason@...c4.com>
Date: Thu, 8 Dec 2016 01:29:42 +0100
> On Wed, Dec 7, 2016 at 8:52 PM, David Miller <davem@...emloft.net> wrote:
>> 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.
Powered by blists - more mailing lists