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

Reply via email to