diff options
| author | Oliver Hartkopp <socketcan@hartkopp.net> | 2013-01-28 03:33:33 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-01-28 18:17:25 -0500 |
| commit | 2bf3440d7b8755f2627232e6a4c37efbbe053685 (patch) | |
| tree | 07e31649ec6a5d58649f6b3c9f8cd1a76e76b24f /net/can | |
| parent | cef401de7be8c4e155c6746bfccf721a4fa5fab9 (diff) | |
can: rework skb reserved data handling
Added accessor and skb_reserve helpers for struct can_skb_priv.
Removed pointless skb_headroom() check.
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
CC: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/can')
| -rw-r--r-- | net/can/bcm.c | 8 | ||||
| -rw-r--r-- | net/can/gw.c | 4 | ||||
| -rw-r--r-- | net/can/raw.c | 4 |
3 files changed, 7 insertions, 9 deletions
diff --git a/net/can/bcm.c b/net/can/bcm.c index ccc27b9e8384..28e12d18f0f1 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
| @@ -261,8 +261,8 @@ static void bcm_can_tx(struct bcm_op *op) | |||
| 261 | if (!skb) | 261 | if (!skb) |
| 262 | goto out; | 262 | goto out; |
| 263 | 263 | ||
| 264 | skb_reserve(skb, sizeof(struct can_skb_priv)); | 264 | can_skb_reserve(skb); |
| 265 | ((struct can_skb_priv *)(skb->head))->ifindex = dev->ifindex; | 265 | can_skb_prv(skb)->ifindex = dev->ifindex; |
| 266 | 266 | ||
| 267 | memcpy(skb_put(skb, CFSIZ), cf, CFSIZ); | 267 | memcpy(skb_put(skb, CFSIZ), cf, CFSIZ); |
| 268 | 268 | ||
| @@ -1207,7 +1207,7 @@ static int bcm_tx_send(struct msghdr *msg, int ifindex, struct sock *sk) | |||
| 1207 | if (!skb) | 1207 | if (!skb) |
| 1208 | return -ENOMEM; | 1208 | return -ENOMEM; |
| 1209 | 1209 | ||
| 1210 | skb_reserve(skb, sizeof(struct can_skb_priv)); | 1210 | can_skb_reserve(skb); |
| 1211 | 1211 | ||
| 1212 | err = memcpy_fromiovec(skb_put(skb, CFSIZ), msg->msg_iov, CFSIZ); | 1212 | err = memcpy_fromiovec(skb_put(skb, CFSIZ), msg->msg_iov, CFSIZ); |
| 1213 | if (err < 0) { | 1213 | if (err < 0) { |
| @@ -1221,7 +1221,7 @@ static int bcm_tx_send(struct msghdr *msg, int ifindex, struct sock *sk) | |||
| 1221 | return -ENODEV; | 1221 | return -ENODEV; |
| 1222 | } | 1222 | } |
| 1223 | 1223 | ||
| 1224 | ((struct can_skb_priv *)(skb->head))->ifindex = dev->ifindex; | 1224 | can_skb_prv(skb)->ifindex = dev->ifindex; |
| 1225 | skb->dev = dev; | 1225 | skb->dev = dev; |
| 1226 | skb->sk = sk; | 1226 | skb->sk = sk; |
| 1227 | err = can_send(skb, 1); /* send with loopback */ | 1227 | err = can_send(skb, 1); /* send with loopback */ |
diff --git a/net/can/gw.c b/net/can/gw.c index acdd4656cc3b..c185fcd5e828 100644 --- a/net/can/gw.c +++ b/net/can/gw.c | |||
| @@ -381,9 +381,7 @@ static void can_can_gw_rcv(struct sk_buff *skb, void *data) | |||
| 381 | 381 | ||
| 382 | /* is sending the skb back to the incoming interface not allowed? */ | 382 | /* is sending the skb back to the incoming interface not allowed? */ |
| 383 | if (!(gwj->flags & CGW_FLAGS_CAN_IIF_TX_OK) && | 383 | if (!(gwj->flags & CGW_FLAGS_CAN_IIF_TX_OK) && |
| 384 | skb_headroom(skb) == sizeof(struct can_skb_priv) && | 384 | can_skb_prv(skb)->ifindex == gwj->dst.dev->ifindex) |
| 385 | (((struct can_skb_priv *)(skb->head))->ifindex == | ||
| 386 | gwj->dst.dev->ifindex)) | ||
| 387 | return; | 385 | return; |
| 388 | 386 | ||
| 389 | /* | 387 | /* |
diff --git a/net/can/raw.c b/net/can/raw.c index 5d860e8dcc52..c1764e41ddaf 100644 --- a/net/can/raw.c +++ b/net/can/raw.c | |||
| @@ -705,8 +705,8 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
| 705 | if (!skb) | 705 | if (!skb) |
| 706 | goto put_dev; | 706 | goto put_dev; |
| 707 | 707 | ||
| 708 | skb_reserve(skb, sizeof(struct can_skb_priv)); | 708 | can_skb_reserve(skb); |
| 709 | ((struct can_skb_priv *)(skb->head))->ifindex = dev->ifindex; | 709 | can_skb_prv(skb)->ifindex = dev->ifindex; |
| 710 | 710 | ||
| 711 | err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size); | 711 | err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size); |
| 712 | if (err < 0) | 712 | if (err < 0) |
