Skip to content

fix kernel crash with macvtap on top of LRO

Michael S. Tsirkin lkml netdev 1 version Applied

Status from this message: Applied to 'net', thanks.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 4 repliesApplied

Changes from v1 from the cover letter

- added missing htons as suggested by Eric
- backported the relevant bits from cbf1de72324a8105ddcc3d9ce9acbc613faea17e for bnx2x

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/3ixgbe: fix gso typedrivers/net/ethernet/intel/ixgbe/ixgbe_main.c+6 -20 replies
2/3qlcnic: set gso_typedrivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c+6 -11 reply
3/3bnx2x: set gso_typedrivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c+5 -71 reply

Reviews trailers per patch

2 of 3 patches have a Reviewed-by or Acked-by.

PatchDmitry KravkovJitendra Kalsaria
1/3
2/3A-b
3/3A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCHv2-net-3.8 0/3] fix kernel crash with macvtap on top of LRO

At the moment, macvtap crashes are observed if macvtap is attached to an interface with LRO enabled.
The crash in question is BUG() in macvtap_skb_to_vnet_hdr. This happens because several drivers set gso_size but not gso_type in incoming skbs.
This didn't use to be the case: with intel cards on 3.2 and older kernels, with qlogic - on 3.4 and older kernels, so it's a regression if not a recent one.
The following patches fix this for qlogic, broadcom and intel drivers.

I tested that the patch fixes the crash for ixgbe but don't have qlogic/broadcom hardware to test. I also only tested TCPv4.

Please review, and consider for 3.8.

Changes from v1:
- added missing htons as suggested by Eric
- backported the relevant bits from cbf1de72324a8105ddcc3d9ce9acbc613faea17e for bnx2x

Michael S. Tsirkin (3):
ixgbe: fix gso type
qlcnic: set gso_type
bnx2x: set gso_type

 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 12 +++++-------
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c   |  8 ++++++--
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c  |  7 ++++++-
 3 files changed, 17 insertions(+), 10 deletions(-)
Signature · 1 line
MST