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