OpenBSD/src ZOp9cu7sys/dev/pv if_xnf.c

   Fixup packet fragment unrolling procedure

   When bus_dmamap_load fails to load one of the buffers in the mbuf
   chain, we need to revert all changes to transmit descriptors.  The
   code to do that was prototyped but not tested.  However due to how
   the Tx ring is set up in xnf(4) and generic lack of proper fragment
   support in the Netfront design we're always limited to having 256
   entries for distinct shared memory pages.  The mbuf chain is
   traversed and attempt is made to load every data chunk into a 4k
   sized DMA map segment which makes it impossible to reference a
   buffer composed of multiple pages.  Current implementation lacks
   support for this preventing reliable transmission of frames larger
   than 4k.

   Bug reported by Kirill Miazine <km at krot ! org>, thanks!
VersionDeltaFile
1.32+11-15sys/dev/pv/if_xnf.c
+11-151 files

UnifiedSplitRaw