tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/dev/pci
On Tue, Nov 29, 2016 at 21:54:11 +0000, Valeriy E. Ushakov wrote:
> Module Name: src
> Committed By: uwe
> Date: Tue Nov 29 21:54:11 UTC 2016
>
> Modified Files:
> src/sys/dev/pci: if_vioif.c
>
> Log Message:
> vioif_start() - do not call virtio_enqueue_abort() after error from
> virtio_enqueue_reserve(), as it's already done by the latter, so we
> ended up with a kind of "double free" that messed up out free list of
> vq_entry's.
>
> This is even documented in a "typical usage" comment in virtio.c (and
> those quotes are not intended to be sarcastic).
>
> PR 51132 - virtio net device stuck for UDP burst transmission
>
>
> To generate a diff of this commit:
> cvs rdiff -u -r1.26 -r1.27 src/sys/dev/pci/if_vioif.c
This seems to be a common problem, as both ld at virtio and viornd
drivers do the same mistake too.
I'd appreciate if people can fix and test (with simulated failure if
necessary).
I wonder if http://gnats.netbsd.org/50604 might be caused by this as
the first time you run out of vq_entry's, you will end up with a
messed up free list.
-uwe
Home |
Main Index |
Thread Index |
Old Index