This is the result of a bug hunt for a problem with the
RTL8366RB DSA switch leading me wrong all over the place.
I am indebted to Vladimir Oltean who as usual pointed
out where the real problem was, many thanks!
Tryig to actually use big ("jumbo") frames on this
hardware uncovered the real bugs. Then I tested it on
the DSA switch and it indeed fixes the issue.
Signed-off-by: Linus Walleij <[email protected]>
---
Changes in v2:
- Don't check for oversized MTU request: the framework makes sure it doesn't
happen.
- Drop unrelated BIT() macro cleanups (I might send these later for net-next)
- Use a special error code if the skbuff is too big and fail gracefully
is this happens.
- Do proper checksum of the frame using a software fallback when the frame
is too long for hardware checksumming.
- Link to v1: https://lore.kernel.org/r/[email protected]
---
Linus Walleij (4):
net: ethernet: cortina: Fix MTU max setting
net: ethernet: cortina: Fix max RX frame define
net: ethernet: cortina: Protect against oversized frames
net: ethernet: cortina: Handle large frames
drivers/net/ethernet/cortina/gemini.c | 39 ++++++++++++++++++++++++++++-------
drivers/net/ethernet/cortina/gemini.h | 4 ++--
2 files changed, 34 insertions(+), 9 deletions(-)
---
base-commit: e85fd73c7d9630d392f451fcf69a457c8e3f21dd
change-id: 20231104-gemini-largeframe-fix-c143d2c781b5
Best regards,
--
Linus Walleij <[email protected]>