Skip to content

Commit

Permalink
can: merge error paths
Browse files Browse the repository at this point in the history
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
ij1 authored and davem330 committed Dec 15, 2008
1 parent d8eb930 commit ebad5c0
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions net/can/raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -641,17 +641,12 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,

skb = sock_alloc_send_skb(sk, size, msg->msg_flags & MSG_DONTWAIT,
&err);
if (!skb) {
dev_put(dev);
return err;
}
if (!skb)
goto put_dev;

err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
if (err < 0) {
kfree_skb(skb);
dev_put(dev);
return err;
}
if (err < 0)
goto free_skb;
skb->dev = dev;
skb->sk = sk;

Expand All @@ -660,9 +655,16 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
dev_put(dev);

if (err)
return err;
goto send_failed;

return size;

free_skb:
kfree_skb(skb);
put_dev:
dev_put(dev);
send_failed:
return err;
}

static int raw_recvmsg(struct kiocb *iocb, struct socket *sock,
Expand Down

0 comments on commit ebad5c0

Please sign in to comment.