Hi, We've just run into a vmx panic and code inspection revealed that my previous diff contained a mistake, the pullup operation is called on a wrong mbuf chain.
I apologize for overlooking this issue. We're not 100% certain that this fixes our exact problem yet since we can't reproduce it at will, but the diff appears correct to us. Please test and report any problems. Thanks! diff --git sys/dev/pci/if_vmx.c sys/dev/pci/if_vmx.c index 2a3367c..7710987 100644 --- sys/dev/pci/if_vmx.c +++ sys/dev/pci/if_vmx.c @@ -1121,11 +1121,11 @@ vmxnet3_load_mbuf(struct vmxnet3_softc *sc, struct vmxnet3_txring *ring, return (-1); ip = (struct ip *)(n->m_data + offp); hlen += ip->ip_hl << 2; - *mp = m_pullup(m, hlen + csum_off + 2); + *mp = m_pullup(n, hlen + csum_off + 2); if (*mp == NULL) return (-1); m = *mp; }