When the GSO splitting feature of sch_cake is enabled, GSO superpackets will be broken up and the resulting segments enqueued in place of the original skb. In this case, CAKE calls consume_skb() on the original skb, but still returns NET_XMIT_SUCCESS. This can confuse parent qdiscs into assuming the original skb still exists, when it really has been freed. Upstream patch & commit: https://lore.kernel.org/all/87wnao2ha3.fsf@toke.dk/T/ https://github.com/torvalds/linux/commit/9efd23297cca