[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/14] Fixes for DP8393X SONIC device emulation
From: |
Finn Thain |
Subject: |
[PATCH v4 00/14] Fixes for DP8393X SONIC device emulation |
Date: |
Wed, 29 Jan 2020 20:27:49 +1100 |
Hi All,
There are bugs in the emulated dp8393x device that can stop packet
reception in a Linux/m68k guest (q800 machine).
With a Linux/m68k v5.5 guest (q800), it's possible to remotely trigger
an Oops by sending ping floods.
With a Linux/mips guest (magnum machine), the driver fails to probe
the dp8393x device.
With a NetBSD/arc 5.1 guest (magnum), the bugs in the device can be
fatal to the guest kernel.
Whilst debugging the device, I found that the receiver algorithm
differs from the one described in the National Semiconductor
datasheet.
This patch series resolves these bugs.
AFAIK, all bugs in the Linux sonic driver were fixed in Linux v5.5.
---
Changed since v1:
- Minor revisions as described beneath commit logs.
- Dropped patches 4/10 and 7/10.
- Added 5 new patches.
Changed since v2:
- Minor revisions as described beneath commit logs.
- Dropped patch 13/13.
- Added 2 new patches.
Changed since v3:
- Replaced patch 13/14 with patch suggested by Philippe Mathieu-Daudé.
Finn Thain (14):
dp8393x: Mask EOL bit from descriptor addresses
dp8393x: Always use 32-bit accesses
dp8393x: Clean up endianness hacks
dp8393x: Have dp8393x_receive() return the packet size
dp8393x: Update LLFA and CRDA registers from rx descriptor
dp8393x: Clear RRRA command register bit only when appropriate
dp8393x: Implement packet size limit and RBAE interrupt
dp8393x: Don't clobber packet checksum
dp8393x: Use long-word-aligned RRA pointers in 32-bit mode
dp8393x: Pad frames to word or long word boundary
dp8393x: Clear descriptor in_use field to release packet
dp8393x: Always update RRA pointers and sequence numbers
dp8393x: Don't reset Silicon Revision register
dp8393x: Don't stop reception upon RBE interrupt assertion
hw/net/dp8393x.c | 202 +++++++++++++++++++++++++++++++----------------
1 file changed, 134 insertions(+), 68 deletions(-)
--
2.24.1
- [PATCH v4 00/14] Fixes for DP8393X SONIC device emulation,
Finn Thain <=
- [PATCH v4 08/14] dp8393x: Don't clobber packet checksum, Finn Thain, 2020/01/29
- [PATCH v4 09/14] dp8393x: Use long-word-aligned RRA pointers in 32-bit mode, Finn Thain, 2020/01/29
- [PATCH v4 05/14] dp8393x: Update LLFA and CRDA registers from rx descriptor, Finn Thain, 2020/01/29
- [PATCH v4 06/14] dp8393x: Clear RRRA command register bit only when appropriate, Finn Thain, 2020/01/29
- [PATCH v4 04/14] dp8393x: Have dp8393x_receive() return the packet size, Finn Thain, 2020/01/29
- [PATCH v4 07/14] dp8393x: Implement packet size limit and RBAE interrupt, Finn Thain, 2020/01/29
- [PATCH v4 10/14] dp8393x: Pad frames to word or long word boundary, Finn Thain, 2020/01/29
- [PATCH v4 11/14] dp8393x: Clear descriptor in_use field to release packet, Finn Thain, 2020/01/29
- [PATCH v4 02/14] dp8393x: Always use 32-bit accesses, Finn Thain, 2020/01/29