On Tue, 2015-02-10 at 10:25 -0800, greearb@xxxxxxxxxxxxxxx wrote: > From: Ben Greear <greearb@xxxxxxxxxxxxxxx> > > Otherwise, skb is not cleaned up until there is some timeout > and the tx-queue quickly becomes overly full. > +++ b/drivers/net/wireless/mac80211_hwsim.c > @@ -928,10 +928,14 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, > genlmsg_end(skb, msg_head); > genlmsg_unicast(&init_net, skb, dst_portid); > > - /* Enqueue the packet */ > - skb_queue_tail(&data->pending, my_skb); > data->tx_pkts++; > data->tx_bytes += my_skb->len; > + > + /* Enqueue the packet if we are expecting a tx-status response */ > + if (info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS) > + skb_queue_tail(&data->pending, my_skb); > + else > + ieee80211_free_txskb(hw, my_skb); This doesn't really seem right - essentially it means that whatever you just gave to userspace is now completely useless? It seems skb_orphan() could/should be put here. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html