diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-12-10 08:01:10 -0800 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-12-10 08:01:10 -0800 |
commit | 8eec3ec7b6576a80fbeda89beed8f9f667f9dc7b (patch) | |
tree | d6acbc72ce4f7434374ba895f88fcfcdc85fa46a /net/tipc/msg.c | |
parent | 6844488aaa6b23d45106c9c3c3ba2f2ee4a612f9 (diff) | |
parent | cb371265c2f1a0dd0cee03bd7fff413d671c53f0 (diff) |
Merge tag 'v4.1.14' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v4.1
This is the 4.1.14 stable release
# gpg: Signature made Wed Dec 9 11:03:49 2015 PST using RSA key ID 6092693E
# gpg: Good signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>"
* tag 'v4.1.14' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (97 commits)
Linux 4.1.14
netlink: Add missing goto statement to netlink_insert
KVM: s390: enable SIMD only when no VCPUs were created
staging/lustre: use jiffies for lp_last_query times
xhci: Workaround to get Intel xHCI reset working more reliably
tty: Fix tty_send_xchar() lock order inversion
tty: audit: Fix audit source
ALSA: usb-audio: work around CH345 input SysEx corruption
ALSA: usb-audio: prevent CH345 multiport output SysEx corruption
ALSA: usb-audio: add packet size quirk for the Medeli DD305
USB: option: add XS Stick W100-2 from 4G Systems
USB: serial: option: add support for Novatel MiFi USB620L
USB: ti_usb_3410_5052: Add Honeywell HGI80 ID
usb: musb: core: fix order of arguments to ulpi write callback
USB: qcserial: Fix support for HP lt4112 LTE/HSPA+ Gobi 4G Modem
USB: qcserial: Add support for Quectel EC20 Mini PCIe module
usblp: do not set TASK_INTERRUPTIBLE before lock
usb: ehci-orion: fix probe for !GENERIC_PHY
ALSA: usb: Add native DSD support for Aune X1S
usb: chipidea: imx: refine clock operations to adapt for all platforms
...
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r-- | net/tipc/msg.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c index c3e96e815418..e9333147d6f1 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c @@ -121,7 +121,7 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) { struct sk_buff *head = *headbuf; struct sk_buff *frag = *buf; - struct sk_buff *tail; + struct sk_buff *tail = NULL; struct tipc_msg *msg; u32 fragid; int delta; @@ -141,9 +141,15 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) if (unlikely(skb_unclone(frag, GFP_ATOMIC))) goto err; head = *headbuf = frag; - skb_frag_list_init(head); - TIPC_SKB_CB(head)->tail = NULL; *buf = NULL; + TIPC_SKB_CB(head)->tail = NULL; + if (skb_is_nonlinear(head)) { + skb_walk_frags(head, tail) { + TIPC_SKB_CB(head)->tail = tail; + } + } else { + skb_frag_list_init(head); + } return 0; } |