socket.c (f869c912869edc2754355af9e10e5aaff8ff5a40) socket.c (e0eb093e794452791b0f932a0120f410f614ad82)
1/* SCTP kernel implementation
2 * (C) Copyright IBM Corp. 2001, 2004
3 * Copyright (c) 1999-2000 Cisco, Inc.
4 * Copyright (c) 1999-2001 Motorola, Inc.
5 * Copyright (c) 2001-2003 Intel Corp.
6 * Copyright (c) 2001-2002 Nokia, Inc.
7 * Copyright (c) 2001 La Monte H.P. Yarroll
8 *

--- 1595 unchanged lines hidden (view full) ---

1604 sctp_cmsgs_t cmsgs = { NULL };
1605 sctp_scope_t scope;
1606 bool fill_sinfo_ttl = false;
1607 struct sctp_datamsg *datamsg;
1608 int msg_flags = msg->msg_flags;
1609 __u16 sinfo_flags = 0;
1610 long timeo;
1611 int err;
1/* SCTP kernel implementation
2 * (C) Copyright IBM Corp. 2001, 2004
3 * Copyright (c) 1999-2000 Cisco, Inc.
4 * Copyright (c) 1999-2001 Motorola, Inc.
5 * Copyright (c) 2001-2003 Intel Corp.
6 * Copyright (c) 2001-2002 Nokia, Inc.
7 * Copyright (c) 2001 La Monte H.P. Yarroll
8 *

--- 1595 unchanged lines hidden (view full) ---

1604 sctp_cmsgs_t cmsgs = { NULL };
1605 sctp_scope_t scope;
1606 bool fill_sinfo_ttl = false;
1607 struct sctp_datamsg *datamsg;
1608 int msg_flags = msg->msg_flags;
1609 __u16 sinfo_flags = 0;
1610 long timeo;
1611 int err;
1612 struct iov_iter from;
1612
1613
1614 iov_iter_init(&from, WRITE, msg->msg_iov, msg->msg_iovlen, msg_len);
1615
1613 err = 0;
1614 sp = sctp_sk(sk);
1615 ep = sp->ep;
1616
1617 pr_debug("%s: sk:%p, msg:%p, msg_len:%zu ep:%p\n", __func__, sk,
1618 msg, msg_len, ep);
1619
1620 /* We cannot send a message over a TCP-style listening socket. */

--- 321 unchanged lines hidden (view full) ---

1942 err = sctp_primitive_ASSOCIATE(net, asoc, NULL);
1943 if (err < 0)
1944 goto out_free;
1945
1946 pr_debug("%s: we associated primitively\n", __func__);
1947 }
1948
1949 /* Break the message into multiple chunks of maximum size. */
1616 err = 0;
1617 sp = sctp_sk(sk);
1618 ep = sp->ep;
1619
1620 pr_debug("%s: sk:%p, msg:%p, msg_len:%zu ep:%p\n", __func__, sk,
1621 msg, msg_len, ep);
1622
1623 /* We cannot send a message over a TCP-style listening socket. */

--- 321 unchanged lines hidden (view full) ---

1945 err = sctp_primitive_ASSOCIATE(net, asoc, NULL);
1946 if (err < 0)
1947 goto out_free;
1948
1949 pr_debug("%s: we associated primitively\n", __func__);
1950 }
1951
1952 /* Break the message into multiple chunks of maximum size. */
1950 datamsg = sctp_datamsg_from_user(asoc, sinfo, msg, msg_len);
1953 datamsg = sctp_datamsg_from_user(asoc, sinfo, &from);
1951 if (IS_ERR(datamsg)) {
1952 err = PTR_ERR(datamsg);
1953 goto out_free;
1954 }
1955
1956 /* Now send the (possibly) fragmented message. */
1957 list_for_each_entry(chunk, &datamsg->chunks, frag_list) {
1958 sctp_chunk_hold(chunk);

--- 5442 unchanged lines hidden ---
1954 if (IS_ERR(datamsg)) {
1955 err = PTR_ERR(datamsg);
1956 goto out_free;
1957 }
1958
1959 /* Now send the (possibly) fragmented message. */
1960 list_for_each_entry(chunk, &datamsg->chunks, frag_list) {
1961 sctp_chunk_hold(chunk);

--- 5442 unchanged lines hidden ---