Index: /trunk/src/VBox/Devices/Network/DevE1000.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 36979)
+++ /trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 36980)
@@ -3533,4 +3533,16 @@
      */
     /* Let's pretend we process descriptors. Write back with DD set. */
+    /*
+     * Prior to r71586 we tried to accomodate the case when write-back bursts
+     * are enabled without actually implementing bursting by writing back all
+     * descriptors, even the ones that do not have RS set. This caused kernel
+     * panics with Linux SMP kernels, as the e1000 driver tried to free up skb
+     * associated with written back descriptor if it happened to be a context
+     * descriptor since context descriptors do not have skb associated to them.
+     * Starting from r71586 we write back only the descriptors with RS set,
+     * which is a little bit different from what the real hardware does in
+     * case there is a chain of data descritors where some of them have RS set
+     * and others do not. It is very uncommon scenario imho.
+     */
     if (pDesc->legacy.cmd.fRS)
     {
