]> rtime.felk.cvut.cz Git - socketcan-devel.git/blob - patch-series/net-2.6.24/intro
74c428c49ff21d9db36f23e687b35a16133b9f2e
[socketcan-devel.git] / patch-series / net-2.6.24 / intro
1 SUBJECT
2 CAN: Add new PF_CAN protocol family, try #9
3 ESUBJECT
4
5 Hello Dave, hello Patrick,
6
7 this is the nineth post of the patch series that adds the PF_CAN
8 protocol family for the Controller Area Network.
9
10 Since our last post we have changed the following:
11
12 * Changes suggested by Arnaldo Carvalho de Melo:
13   - Use gfp_any() instead of checking in_interrupt().
14   - Don't kfree() the sk_protinfo field.
15 * Fixed licence text as pointed out by Yoshifuji Hideaki and Patrick McHardy.
16 * Added IFF_ECHO to include/linux/if.h and use that instead of IFF_LOOPBACK,
17   as suggested by Eric W. Biederman.  IFF_LOOPBACK is only for the normal
18   loopback interface.
19
20 The changes in try #8 were:
21
22 * Some changes in debug code, following suggestions from Joe Perches:
23   - Remove dynamically allocated buffer for debug output.
24   - Use kernel functions for hexdumps.
25   - Don't interpret printf-style %-sequences in can_debug_cframe().
26   - Specify the fixed argument "fmt" to DBG() macro and use
27     GCC ## mechanism to remove , when args is empty.
28 * Removed CAN_RAW_USER and CAN_BCM_USER Kconfig options following a
29   suggestion from Patrick.
30 * Prevent overflow in statistics calculation.
31 * Minor optimization.
32
33 The changes in try #7 were:
34
35 * Changes suggested by Patrick:
36   - protect proto_tab[] by a lock.
37   - add _rcu to some hlist traversals.
38   - use printk_ratelimit() for module autoload failures.
39   - make can_proto_unregister() and can_rx_unregister() return void.
40   - use return value of can_proto_register() and can_rx_register()
41     (this also removed a flaw in behavior of raw_bind() and raw_setsockopt()
42      in case of failure to can_rx_register() their filters).
43   - call kzalloc() with GFP_KERNEL in case NETDEV_REGISTER.
44   - use round_jiffies() to calculate expiration times.
45   - make some variables static and/or __read_mostly.
46   - in can_create() check for net namespace before auto loading modules.
47   - add build time check for struct sizes.
48   - use skb_share_chack() in vcan.
49   - fixed some comments.
50 * Typos in documentation as pointed out by Randy Dunlap and Bill Fink.
51
52 The changes in try #6 were:
53
54 * Update code to work with namespaces in net-2.6.24.
55 * Remove SET_MODULE_OWNER() from vcan.
56
57 The changes in try #5 were:
58
59 * Remove slab destructor from calls to kmem_cache_alloc().
60 * Add comments about types defined in can.h.
61 * Update comment on vcan loopback module parameter.
62 * Fix typo in documentation.
63
64 The changes in try #4 were:
65
66 * Change vcan network driver to use the new RTNL API, as suggested by
67   Patrick.
68 * Revert our change to use skb->iif instead of skb->cb.  After
69   discussion with Patrick and Jamal it turned out, our first
70   implementation was correct.
71 * Use skb_tail_pointer() instead of skb->tail directly.
72 * Coding style changes to satisfy linux/scripts/checkpatch.pl.
73 * Minor changes for 64-bit-cleanliness.
74 * Minor cleanup of #include's
75
76 The changes in try #3 were:
77
78 * Use sbk->sk and skb->pkt_type instead of skb->cb to pass loopback
79   flags and originating socket down to the driver and back to the
80   receiving socket.  Thanks to Patrick McHardy for pointing out our
81   wrong use of sbk->cb.
82 * Use skb->iif instead of skb->cb to pass receiving interface from
83   raw_rcv() and bcm_rcv() up to raw_recvmsg() and bcm_recvmsg().
84 * Set skb->protocol when sending CAN frames to netdevices.
85 * Removed struct raw_opt and struct bcm_opt and integrated these
86   directly into struct raw_sock and bcm_sock resp., like most other
87   proto implementations do.
88 * We have found and fixed race conditions between raw_bind(),
89   raw_{set,get}sockopt() and raw_notifier().  This resulted in
90   - complete removal of our own notifier list infrastructure in
91     af_can.c.  raw.c and bcm.c now use normal netdevice notifiers.
92   - removal of ro->lock spinlock.  We use lock_sock(sk) now.
93   - changed deletion of dev_rcv_lists, which are now marked for
94     deletion in the netdevice notifier in af_can.c and are actually
95     deleted when all entries have been deleted using can_rx_unregister().
96 * Follow changes in 2.6.22 (e.g. ktime_t timestamps in skb).
97 * Removed obsolete code from vcan.c, as pointed out by Stephen Hemminger.
98
99 The changes in try #2 were:
100
101 * reduced RCU callback overhead when deleting receiver lists (thx to
102   feedback from Paul E. McKenney).
103 * eliminated some code duplication in net/can/proc.c.
104 * renamed slock-29 and sk_lock-29 to slock-AF_CAN and sk_lock-AF_CAN in
105   net/core/sock.c
106 * added entry for can.txt in Documentation/networking/00-INDEX
107 * added error frame definitions in include/linux/can/error.h, which are to
108   be used by CAN network drivers.
109
110
111 This patch series applies against net-2.6.24 and is derived from Subversion
112 revision r511 of http://svn.berlios.de/svnroot/repos/socketcan.
113 It can be found in the directory
114 http://svn.berlios.de/svnroot/repos/socketcan/trunk/patch-series/<version>.
115
116 Thanks very much for your work!
117
118 Best regards,
119
120 Urs Thuermann
121 Oliver Hartkopp