Module Name: src Committed By: hikaru Date: Sat Jul 19 06:12:24 UTC 2014
Modified Files: src/sys/arch/x86/pci: if_vmx.c Log Message: Correct return value handling. m_defrag(9) is different from OpenBSD one, it returns new mbuf pointer on success, not zero. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/x86/pci/if_vmx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/pci/if_vmx.c diff -u src/sys/arch/x86/pci/if_vmx.c:1.3 src/sys/arch/x86/pci/if_vmx.c:1.4 --- src/sys/arch/x86/pci/if_vmx.c:1.3 Thu Jun 19 13:20:28 2014 +++ src/sys/arch/x86/pci/if_vmx.c Sat Jul 19 06:12:24 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_vmx.c,v 1.3 2014/06/19 13:20:28 hikaru Exp $ */ +/* $NetBSD: if_vmx.c,v 1.4 2014/07/19 06:12:24 hikaru Exp $ */ /* $OpenBSD: if_vmx.c,v 1.16 2014/01/22 06:04:17 brad Exp $ */ /* @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.3 2014/06/19 13:20:28 hikaru Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.4 2014/07/19 06:12:24 hikaru Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -1145,11 +1145,13 @@ vmxnet3_load_mbuf(struct vmxnet3_softc * case 0: break; case EFBIG: - if (m_defrag(m, M_DONTWAIT) == 0 && - bus_dmamap_load_mbuf(sc->sc_dmat, map, m, - BUS_DMA_NOWAIT) == 0) - break; - + mp = m_defrag(m, M_DONTWAIT); + if (mp != NULL) { + m = mp; + if (bus_dmamap_load_mbuf(sc->sc_dmat, map, m, + BUS_DMA_NOWAIT) == 0) + break; + } /* FALLTHROUGH */ default: m_freem(m);