Netdev List
 help / color / mirror / Atom feed
* [PATCH 0/7] CAN: New PF_CAN protocol family for 2.6.25, update
@ 2007-11-16 15:02 Urs Thuermann
  2007-11-16 15:02 ` [PATCH 1/7] CAN: Allocate protocol numbers for PF_CAN Urs Thuermann
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Urs Thuermann @ 2007-11-16 15:02 UTC (permalink / raw)
  To: netdev, David Miller, Patrick McHardy
  Cc: Stephen Hemminger, Joe Perches, Sam Ravnborg, Thomas Gleixner,
	Oliver Hartkopp

Hello Dave, hello Patrick,

this patch series adds the PF_CAN protocol family for the
Controller Area Network.  Since our last post we have changed:

* Remove vcan_open() and vcan_stop().
* return NETDEV_TX_OK instead of 0.
* Add can_ prefix to some global vars.
* Remove all debug code completely.
* Cleanup of timer code.

This patch series applies against net-2.6.25 and is derived from Subversion
revision r560 of http://svn.berlios.de/svnroot/repos/socketcan.
It can be found in the directory
http://svn.berlios.de/svnroot/repos/socketcan/trunk/patch-series/<version>.

Urs Thuermann
Oliver Hartkopp


The changes in try #11 were:

* Fix a bug causing NULL pointer dereference when module autoloading fails.
* Initialize skb using skb_reset_{transport,network}_header().
* Use sock_alloc_send_skb() instead of alloc_skb().
* Adapt to changes in sk_alloc() parameter list.
* Rename some local variables for readability.

The changes in try #10 were:

* Rename our static debug variables to {can,raw,bcm,vcan}_debug.
* Use module_param_named() so that the module option names remain.
* Remove raw_poll() and bcm_poll() functions and use datagram_poll instead.
* Cleanup of can_addr union in sockaddr_can.
* Change type of echo module parameter to boolean.

The changes in try #9 were:

* Changes suggested by Arnaldo Carvalho de Melo:
  - Use gfp_any() instead of checking in_interrupt().
  - Don't kfree() the sk_protinfo field.
* Fixed licence text as pointed out by Yoshifuji Hideaki and Patrick McHardy.
* Added IFF_ECHO to include/linux/if.h and use that instead of IFF_LOOPBACK,
  as suggested by Eric W. Biederman.  IFF_LOOPBACK is only for the normal
  loopback interface.

The changes in try #8 were:

* Some changes in debug code, following suggestions from Joe Perches:
  - Remove dynamically allocated buffer for debug output.
  - Use kernel functions for hexdumps.
  - Don't interpret printf-style %-sequences in can_debug_cframe().
  - Specify the fixed argument "fmt" to DBG() macro and use
    GCC ## mechanism to remove , when args is empty.
* Removed CAN_RAW_USER and CAN_BCM_USER Kconfig options following a
  suggestion from Patrick.
* Prevent overflow in statistics calculation.
* Minor optimization.

The changes in try #7 were:

* Changes suggested by Patrick:
  - protect proto_tab[] by a lock.
  - add _rcu to some hlist traversals.
  - use printk_ratelimit() for module autoload failures.
  - make can_proto_unregister() and can_rx_unregister() return void.
  - use return value of can_proto_register() and can_rx_register()
    (this also removed a flaw in behavior of raw_bind() and raw_setsockopt()
     in case of failure to can_rx_register() their filters).
  - call kzalloc() with GFP_KERNEL in case NETDEV_REGISTER.
  - use round_jiffies() to calculate expiration times.
  - make some variables static and/or __read_mostly.
  - in can_create() check for net namespace before auto loading modules.
  - add build time check for struct sizes.
  - use skb_share_chack() in vcan.
  - fixed some comments.
* Typos in documentation as pointed out by Randy Dunlap and Bill Fink.

The changes in try #6 were:

* Update code to work with namespaces in net-2.6.24.
* Remove SET_MODULE_OWNER() from vcan.

The changes in try #5 were:

* Remove slab destructor from calls to kmem_cache_alloc().
* Add comments about types defined in can.h.
* Update comment on vcan loopback module parameter.
* Fix typo in documentation.

The changes in try #4 were:

* Change vcan network driver to use the new RTNL API, as suggested by
  Patrick.
* Revert our change to use skb->iif instead of skb->cb.  After
  discussion with Patrick and Jamal it turned out, our first
  implementation was correct.
* Use skb_tail_pointer() instead of skb->tail directly.
* Coding style changes to satisfy linux/scripts/checkpatch.pl.
* Minor changes for 64-bit-cleanliness.
* Minor cleanup of #include's

The changes in try #3 were:

* Use sbk->sk and skb->pkt_type instead of skb->cb to pass loopback
  flags and originating socket down to the driver and back to the
  receiving socket.  Thanks to Patrick McHardy for pointing out our
  wrong use of sbk->cb.
* Use skb->iif instead of skb->cb to pass receiving interface from
  raw_rcv() and bcm_rcv() up to raw_recvmsg() and bcm_recvmsg().
* Set skb->protocol when sending CAN frames to netdevices.
* Removed struct raw_opt and struct bcm_opt and integrated these
  directly into struct raw_sock and bcm_sock resp., like most other
  proto implementations do.
* We have found and fixed race conditions between raw_bind(),
  raw_{set,get}sockopt() and raw_notifier().  This resulted in
  - complete removal of our own notifier list infrastructure in
    af_can.c.  raw.c and bcm.c now use normal netdevice notifiers.
  - removal of ro->lock spinlock.  We use lock_sock(sk) now.
  - changed deletion of dev_rcv_lists, which are now marked for
    deletion in the netdevice notifier in af_can.c and are actually
    deleted when all entries have been deleted using can_rx_unregister().
* Follow changes in 2.6.22 (e.g. ktime_t timestamps in skb).
* Removed obsolete code from vcan.c, as pointed out by Stephen Hemminger.

The changes in try #2 were:

* reduced RCU callback overhead when deleting receiver lists (thx to
  feedback from Paul E. McKenney).
* eliminated some code duplication in net/can/proc.c.
* renamed slock-29 and sk_lock-29 to slock-AF_CAN and sk_lock-AF_CAN in
  net/core/sock.c
* added entry for can.txt in Documentation/networking/00-INDEX
* added error frame definitions in include/linux/can/error.h, which are to
  be used by CAN network drivers.
--

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-11-17  0:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-16 15:02 [PATCH 0/7] CAN: New PF_CAN protocol family for 2.6.25, update Urs Thuermann
2007-11-16 15:02 ` [PATCH 1/7] CAN: Allocate protocol numbers for PF_CAN Urs Thuermann
2007-11-16 15:02 ` [PATCH 2/7] CAN: Add PF_CAN core module Urs Thuermann
2007-11-16 15:02 ` [PATCH 3/7] CAN: Add raw protocol Urs Thuermann
2007-11-16 15:02 ` [PATCH 4/7] CAN: Add broadcast manager (bcm) protocol Urs Thuermann
2007-11-16 15:02 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-11-16 15:02 ` [PATCH 6/7] CAN: Add maintainer entries Urs Thuermann
2007-11-16 15:02 ` [PATCH 7/7] CAN: Add documentation Urs Thuermann
2007-11-17  0:10 ` [PATCH 0/7] CAN: New PF_CAN protocol family for 2.6.25, update David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox