---
name: "skb_copy_expand"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/skb_copy_expand"
---

# skb\_copy\_expand(9)

copy and expand sk\_buff

## NAME

skb\_copy\_expand - copy and expand sk\_buff

## SYNOPSIS

**struct sk\_buff \* skb\_copy\_expand(const struct sk\_buff \*** *skb***, int** *newheadroom***, int** *newtailroom***, gfp\_t** *gfp\_mask***);**

## ARGUMENTS

*skb*

buffer to copy

*newheadroom*

new free bytes at head

*newtailroom*

new free bytes at tail

*gfp\_mask*

allocation priority

## DESCRIPTION

Make a copy of both an sk\_buff and its data and while doing so allocate additional space.

This is used when the caller wishes to modify the data and needs a private copy of the data to alter as well as more space for new fields. Returns **NULL** on failure or the pointer to the buffer on success. The returned buffer has a reference count of 1.

You must pass **GFP\_ATOMIC** as the allocation priority if this function is called from an interrupt.

## COPYRIGHT
