net: Revert "net: avoid one atomic operation in skb_clone()"
authorEric Dumazet <edumazet@google.com>
Fri, 21 Nov 2014 19:47:16 +0000 (11:47 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Nov 2014 20:26:32 +0000 (15:26 -0500)
commite7820e39b7d19b9fe1928fc19de9361b44150ca6
tree15599feec720efe469184ed07d9eefc91c32a086
parent892d6eb1245b771987afb8667a65344e568d3439
net: Revert "net: avoid one atomic operation in skb_clone()"

Not sure what I was thinking, but doing anything after
releasing a refcount is suicidal or/and embarrassing.

By the time we set skb->fclone to SKB_FCLONE_FREE, another cpu
could have released last reference and freed whole skb.

We potentially corrupt memory or trap if CONFIG_DEBUG_PAGEALLOC is set.

Reported-by: Chris Mason <clm@fb.com>
Fixes: ce1a4ea3f1258 ("net: avoid one atomic operation in skb_clone()")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/skbuff.c