| From foo@baz Thu Feb 27 20:11:26 PST 2014 |
| From: Emil Goode <emilgoode@gmail.com> |
| Date: Thu, 13 Feb 2014 19:30:39 +0100 |
| Subject: net: asix: add missing flag to struct driver_info |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Emil Goode <emilgoode@gmail.com> |
| |
| [ Upstream commit d43ff4cd798911736fb39025ec8004284b1b0bc2 ] |
| |
| The struct driver_info ax88178_info is assigned the function |
| asix_rx_fixup_common as it's rx_fixup callback. This means that |
| FLAG_MULTI_PACKET must be set as this function is cloning the |
| data and calling usbnet_skb_return. Not setting this flag leads |
| to usbnet_skb_return beeing called a second time from within |
| the rx_process function in the usbnet module. |
| |
| Signed-off-by: Emil Goode <emilgoode@gmail.com> |
| Reported-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/asix_devices.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/usb/asix_devices.c |
| +++ b/drivers/net/usb/asix_devices.c |
| @@ -918,7 +918,8 @@ static const struct driver_info ax88178_ |
| .status = asix_status, |
| .link_reset = ax88178_link_reset, |
| .reset = ax88178_reset, |
| - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR, |
| + .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR | |
| + FLAG_MULTI_PACKET, |
| .rx_fixup = asix_rx_fixup_common, |
| .tx_fixup = asix_tx_fixup, |
| }; |