From: Arthur Kepner <[EMAIL PROTECTED]>
Date: Tue, 14 Feb 2006 13:55:58 -0800 (PST)

> 
> There's a race in pktgen which can lead to a double
> free of a pktgen_dev's skb. If a worker thread is in
> the midst of doing fill_packet(), and the controlling
> thread gets a "stop" message, the already freed skb
> can be freed once again in pktgen_stop_device().
> 
> This patch removes the race by setting the pktgen_dev's
> skb to NULL before freeing it.
> 
> Signed-off-by: Arthur Kepner <[EMAIL PROTECTED]>

I don't see how this fixes the race, now we have:

        CPU 0           CPU 1

        stop                    worker thread

                                old_skb = pkt_dev->skb;
        old_skb = pkt_dev->skb;
        pkt_dev->skb = NULL;
        ...
        kfree_skb(old_skb);
                                pkt_dev->skb = NULL;
                                kfree_skb(old_skb);

It's the same race we started with. :-)

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

Reply via email to