|
@@ -883,8 +883,8 @@ static int ip6_tnl_xmit2(struct sk_buff *skb,
|
|
|
*/
|
|
|
max_headroom += LL_RESERVED_SPACE(tdev);
|
|
|
|
|
|
- if (skb_headroom(skb) < max_headroom ||
|
|
|
- skb_cloned(skb) || skb_shared(skb)) {
|
|
|
+ if (skb_headroom(skb) < max_headroom || skb_shared(skb) ||
|
|
|
+ (skb_cloned(skb) && !skb_clone_writable(skb, 0))) {
|
|
|
struct sk_buff *new_skb;
|
|
|
|
|
|
if (!(new_skb = skb_realloc_headroom(skb, max_headroom)))
|