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;
}