aboutsummaryrefslogtreecommitdiff
path: root/net/tipc/msg.c
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2015-12-10 08:01:10 -0800
committerKevin Hilman <khilman@linaro.org>2015-12-10 08:01:10 -0800
commit8eec3ec7b6576a80fbeda89beed8f9f667f9dc7b (patch)
treed6acbc72ce4f7434374ba895f88fcfcdc85fa46a /net/tipc/msg.c
parent6844488aaa6b23d45106c9c3c3ba2f2ee4a612f9 (diff)
parentcb371265c2f1a0dd0cee03bd7fff413d671c53f0 (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.c12
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;
}