usbnet: fix alignment for frames with no ethernet header
authorBjørn Mork <bjorn@mork.no>
Wed, 6 Dec 2017 19:21:24 +0000 (20:21 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 Dec 2017 14:07:56 +0000 (15:07 +0100)
commitbea712a8a5aa9c58e06e3bb894dc25633898c450
treebc7a7573a6d73ea39c530c5cf2c95897838760fd
parentf8e5ef4ea8f1037f3f7cfd12291f55baa82e5251
usbnet: fix alignment for frames with no ethernet header

[ Upstream commit a4abd7a80addb4a9547f7dfc7812566b60ec505c ]

The qmi_wwan minidriver support a 'raw-ip' mode where frames are
received without any ethernet header. This causes alignment issues
because the skbs allocated by usbnet are "IP aligned".

Fix by allowing minidrivers to disable the additional alignment
offset. This is implemented using a per-device flag, since the same
minidriver also supports 'ethernet' mode.

Fixes: 32f7adf633b9 ("net: qmi_wwan: support "raw IP" mode")
Reported-and-tested-by: Jay Foster <jay@systech.com>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/usb/qmi_wwan.c
drivers/net/usb/usbnet.c
include/linux/usb/usbnet.h