|
@@ -1652,7 +1652,7 @@ static inline int l2cap_skbuff_fromiovec(struct sock *sk, struct msghdr *msg, in
|
|
|
|
|
|
*frag = bt_skb_send_alloc(sk, count, msg->msg_flags & MSG_DONTWAIT, &err);
|
|
*frag = bt_skb_send_alloc(sk, count, msg->msg_flags & MSG_DONTWAIT, &err);
|
|
if (!*frag)
|
|
if (!*frag)
|
|
- return -EFAULT;
|
|
|
|
|
|
+ return err;
|
|
if (memcpy_fromiovec(skb_put(*frag, count), msg->msg_iov, count))
|
|
if (memcpy_fromiovec(skb_put(*frag, count), msg->msg_iov, count))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
|
|
|
|
@@ -1678,7 +1678,7 @@ static struct sk_buff *l2cap_create_connless_pdu(struct sock *sk, struct msghdr
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
if (!skb)
|
|
if (!skb)
|
|
- return ERR_PTR(-ENOMEM);
|
|
|
|
|
|
+ return ERR_PTR(err);
|
|
|
|
|
|
/* Create L2CAP header */
|
|
/* Create L2CAP header */
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
|
@@ -1707,7 +1707,7 @@ static struct sk_buff *l2cap_create_basic_pdu(struct sock *sk, struct msghdr *ms
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
if (!skb)
|
|
if (!skb)
|
|
- return ERR_PTR(-ENOMEM);
|
|
|
|
|
|
+ return ERR_PTR(err);
|
|
|
|
|
|
/* Create L2CAP header */
|
|
/* Create L2CAP header */
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
|
@@ -1744,7 +1744,7 @@ static struct sk_buff *l2cap_create_iframe_pdu(struct sock *sk, struct msghdr *m
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
skb = bt_skb_send_alloc(sk, count + hlen,
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
msg->msg_flags & MSG_DONTWAIT, &err);
|
|
if (!skb)
|
|
if (!skb)
|
|
- return ERR_PTR(-ENOMEM);
|
|
|
|
|
|
+ return ERR_PTR(err);
|
|
|
|
|
|
/* Create L2CAP header */
|
|
/* Create L2CAP header */
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|