]> rtime.felk.cvut.cz Git - socketcan-devel.git/commit
can: provide library functions for skb allocation
authorwolf <wolf@030b6a49-0b11-0410-94ab-b0dab22257f2>
Wed, 7 Oct 2009 17:37:57 +0000 (17:37 +0000)
committerwolf <wolf@030b6a49-0b11-0410-94ab-b0dab22257f2>
Wed, 7 Oct 2009 17:37:57 +0000 (17:37 +0000)
commit14c99752aa69ff13c8aa0f3115733073e33370bd
treed6a7182688867f060349211d7d536983e9a9d1c0
parentbfb513ca7e6e3ee5dfa114b084a8f452d67b7b03
can: provide library functions for skb allocation

This patch makes the private functions alloc_can_skb() and
alloc_can_err_skb() of the at91_can driver public and adapts all
drivers to use these. While making the patch I realized, that
the skb's are *not* setup consistently. The skb's are now setup
as shown:

skb->protocol = __constant_htons(ETH_P_CAN);
skb->pkt_type = PACKET_BROADCAST;
skb->ip_summed = CHECKSUM_UNNECESSARY;
*cf = (struct can_frame *)skb_put(skb, sizeof(struct can_frame));
memset(*cf, 0, sizeof(struct can_frame));

The frame is zeroed out to avoid uninitialized data to be passed
to user space.

Some drivers or library code used "htons(ETH_P_CAN)" or did not set
"pkt_type" or "ip_summed" or did not zero the fame.

Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Acked-by: Oliver Hartkopp <oliver@hartkopp.net>
git-svn-id: svn://svn.berlios.de//socketcan/trunk@1068 030b6a49-0b11-0410-94ab-b0dab22257f2
kernel/2.6/drivers/net/can/at91_can.c
kernel/2.6/drivers/net/can/cc770/cc770.c
kernel/2.6/drivers/net/can/dev.c
kernel/2.6/drivers/net/can/esd_pci331.c
kernel/2.6/drivers/net/can/mcp251x.c
kernel/2.6/drivers/net/can/mscan/mscan.c
kernel/2.6/drivers/net/can/sja1000/sja1000.c
kernel/2.6/drivers/net/can/softing/softing_main.c
kernel/2.6/drivers/net/can/usb/ems_usb.c
kernel/2.6/include/socketcan/can/dev.h