While perusing the code in mac80211_hwsim, I notice what I think
is a memory leak:

Shouldn't there be an skb_free on the return result of skb_dequeue??

static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
                                       struct sk_buff *my_skb,
                                       int dst_portid)
{
        struct sk_buff *skb;
        struct mac80211_hwsim_data *data = hw->priv;
        struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) my_skb->data;
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(my_skb);
        void *msg_head;
        unsigned int hwsim_flags = 0;
        int i;
        struct hwsim_tx_rate tx_attempts[IEEE80211_TX_MAX_RATES];

        if (data->ps != PS_DISABLED)
                hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM);
        /* If the queue contains MAX_QUEUE skb's drop some */
        if (skb_queue_len(&data->pending) >= MAX_QUEUE) {
                /* Droping until WARN_QUEUE level */
                while (skb_queue_len(&data->pending) >= WARN_QUEUE)
                        skb_dequeue(&data->pending);
        }


Thanks,
Ben

-- 
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to