Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934034AbcLHAhU (ORCPT ); Wed, 7 Dec 2016 19:37:20 -0500 Received: from shards.monkeyblade.net ([184.105.139.130]:43494 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932441AbcLHAhS (ORCPT ); Wed, 7 Dec 2016 19:37:18 -0500 Date: Wed, 07 Dec 2016 19:37:16 -0500 (EST) Message-Id: <20161207.193716.50344961208535056.davem@davemloft.net> To: Jason@zx2c4.com Cc: dave.taht@gmail.com, netdev@vger.kernel.org, linux-mips@linux-mips.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com Subject: Re: Misalignment, MIPS, and ip_hdr(skb)->version From: David Miller In-Reply-To: References: <20161207.145240.1636297838792223189.davem@davemloft.net> X-Mailer: Mew version 6.7 on Emacs 25.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Wed, 07 Dec 2016 15:37:56 -0800 (PST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1163 Lines: 24 From: "Jason A. Donenfeld" Date: Thu, 8 Dec 2016 01:29:42 +0100 > On Wed, Dec 7, 2016 at 8:52 PM, David Miller 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.