On 2020/3/4 上午6:44, Finn Thain wrote:
Hi Jason, The patch in this pull request (since merged) differs from the patch that I sent. In particular, the change below is missing from commit 88f632fbb1 ("dp8393x: Mask EOL bit from descriptor addresses") in mainline. --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -525,8 +525,8 @@ static void dp8393x_do_transmit_packets(dp8393xState *s) * (4 + 3 * s->regs[SONIC_TFC]), MEMTXATTRS_UNSPECIFIED, s->data, size); - s->regs[SONIC_CTDA] = dp8393x_get(s, width, 0) & ~0x1; - if (dp8393x_get(s, width, 0) & SONIC_DESC_EOL) { + s->regs[SONIC_CTDA] = dp8393x_get(s, width, 0); + if (s->regs[SONIC_CTDA] & SONIC_DESC_EOL) { /* EOL detected */ break; } Please compare with "[PATCH v4 01/14] dp8393x: Mask EOL bit from descriptor addresses" in the mailing list archives: https://lore.kernel.org/qemu-devel/d6e8d06ad4d02f4a30c4caa6001967f806f21a1a.1580290069.git.fth...@telegraphics.com.au/ It appears that this portion of my patch went missing when merge conflicts were resolved. The conflicts were apparently caused by commit 19f7034773 ("Avoid address_space_rw() with a constant is_write argument"). Regards, Finn
Exactly. Please send a patch to fix this. Thanks