bit = trace_get_context_bit() + start;
        if (unlikely(val & (1 << bit))) {
                /*
-                * It could be that preempt_count has not been updated during
-                * a switch between contexts. Allow for a single recursion.
+                * If an interrupt occurs during a trace, and another trace
+                * happens in that interrupt but before the preempt_count is
+                * updated to reflect the new interrupt context, then this
+                * will think a recursion occurred, and the event will be dropped.
+                * Let a single instance happen via the TRANSITION_BIT to
+                * not drop those events.
                 */
                bit = TRACE_TRANSITION_BIT;
                if (val & (1 << bit)) {