include/linux/can.h | 111 +++++
include/linux/can/core.h | 77 +++
include/linux/can/error.h | 93 ++++
+ include/linux/if.h | 4
net/Kconfig | 1
net/Makefile | 1
net/can/Kconfig | 25 +
net/can/Makefile | 6
- net/can/af_can.c | 973 ++++++++++++++++++++++++++++++++++++++++++++++
- net/can/af_can.h | 121 +++++
- net/can/proc.c | 533 +++++++++++++++++++++++++
- 10 files changed, 1941 insertions(+)
+ net/can/af_can.c | 970 ++++++++++++++++++++++++++++++++++++++++++++++
+ net/can/af_can.h | 120 +++++
+ net/can/proc.c | 532 +++++++++++++++++++++++++
+ 11 files changed, 1939 insertions(+), 1 deletion(-)
Index: net-2.6.24/include/linux/can.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/include/linux/can.h 2007-09-25 13:14:46.000000000 +0200
++++ net-2.6.24/include/linux/can.h 2007-10-02 06:18:29.000000000 +0200
@@ -0,0 +1,111 @@
+/*
+ * linux/can.h
Index: net-2.6.24/include/linux/can/core.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/include/linux/can/core.h 2007-09-25 13:22:22.000000000 +0200
++++ net-2.6.24/include/linux/can/core.h 2007-10-02 08:15:32.000000000 +0200
@@ -0,0 +1,77 @@
+/*
+ * linux/can/core.h
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+
-+#define CAN_VERSION "20070920"
++#define CAN_VERSION "20071001"
+
+/* increment this number each time you change some user-space interface */
+#define CAN_ABI_VERSION "8"
+#endif /* CAN_CORE_H */
Index: net-2.6.24/net/Kconfig
===================================================================
---- net-2.6.24.orig/net/Kconfig 2007-09-24 17:53:08.000000000 +0200
-+++ net-2.6.24/net/Kconfig 2007-09-25 13:14:46.000000000 +0200
+--- net-2.6.24.orig/net/Kconfig 2007-10-02 06:17:07.000000000 +0200
++++ net-2.6.24/net/Kconfig 2007-10-02 06:18:29.000000000 +0200
@@ -210,6 +210,7 @@
endmenu
source "net/rxrpc/Kconfig"
Index: net-2.6.24/net/Makefile
===================================================================
---- net-2.6.24.orig/net/Makefile 2007-09-24 17:53:08.000000000 +0200
-+++ net-2.6.24/net/Makefile 2007-09-25 13:14:46.000000000 +0200
+--- net-2.6.24.orig/net/Makefile 2007-10-02 06:17:07.000000000 +0200
++++ net-2.6.24/net/Makefile 2007-10-02 06:18:29.000000000 +0200
@@ -34,6 +34,7 @@
obj-$(CONFIG_NETROM) += netrom/
obj-$(CONFIG_ROSE) += rose/
Index: net-2.6.24/net/can/Kconfig
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/Kconfig 2007-09-25 13:14:46.000000000 +0200
++++ net-2.6.24/net/can/Kconfig 2007-10-02 08:36:04.000000000 +0200
@@ -0,0 +1,25 @@
+#
+# Controller Area Network (CAN) network layer core configuration
Index: net-2.6.24/net/can/Makefile
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/Makefile 2007-09-25 13:14:46.000000000 +0200
++++ net-2.6.24/net/can/Makefile 2007-10-02 08:36:04.000000000 +0200
@@ -0,0 +1,6 @@
+#
+# Makefile for the Linux Controller Area Network core.
Index: net-2.6.24/net/can/af_can.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/af_can.c 2007-09-25 13:22:22.000000000 +0200
-@@ -0,0 +1,973 @@
++++ net-2.6.24/net/can/af_can.c 2007-10-02 08:36:42.000000000 +0200
+@@ -0,0 +1,970 @@
+/*
+ * af_can.c - Protocol family CAN core module
+ * (used by different CAN protocol modules)
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
+ DBG("called for sock %p\n", sk);
+
+ skb_queue_purge(&sk->sk_receive_queue);
-+ if (sk->sk_protinfo)
-+ kfree(sk->sk_protinfo);
+}
+
+static int can_create(struct net *net, struct socket *sock, int protocol)
+ * after each skb_clone() or skb_orphan() usage.
+ */
+
-+ if (!(skb->dev->flags & IFF_LOOPBACK)) {
++ if (!(skb->dev->flags & IFF_ECHO)) {
+ /*
+ * If the interface is not capable to do loopback
+ * itself, we do it here.
Index: net-2.6.24/net/can/af_can.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/af_can.h 2007-09-25 13:14:46.000000000 +0200
-@@ -0,0 +1,121 @@
++++ net-2.6.24/net/can/af_can.h 2007-10-02 08:36:43.000000000 +0200
+@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
+ * All rights reserved.
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
Index: net-2.6.24/net/can/proc.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/proc.c 2007-09-25 13:22:22.000000000 +0200
-@@ -0,0 +1,533 @@
++++ net-2.6.24/net/can/proc.c 2007-10-02 08:39:22.000000000 +0200
+@@ -0,0 +1,532 @@
+/*
+ * proc.c - procfs support for Protocol family CAN core module
+ *
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
Index: net-2.6.24/include/linux/can/error.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/include/linux/can/error.h 2007-09-25 13:14:46.000000000 +0200
++++ net-2.6.24/include/linux/can/error.h 2007-10-02 06:18:29.000000000 +0200
@@ -0,0 +1,93 @@
+/*
+ * linux/can/error.h
+/* controller specific additional information / data[5..7] */
+
+#endif /* CAN_ERROR_H */
+Index: net-2.6.24/include/linux/if.h
+===================================================================
+--- net-2.6.24.orig/include/linux/if.h 2007-10-02 06:24:41.000000000 +0200
++++ net-2.6.24/include/linux/if.h 2007-10-02 06:27:10.000000000 +0200
+@@ -50,7 +50,9 @@
+ #define IFF_LOWER_UP 0x10000 /* driver signals L1 up */
+ #define IFF_DORMANT 0x20000 /* driver signals dormant */
+
+-#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|\
++#define IFF_ECHO 0x40000 /* echo sent packets */
++
++#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\
+ IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
+
+ /* Private (from user) interface flags (netdevice->priv_flags). */
include/linux/can/raw.h | 31 +
net/can/Kconfig | 11
net/can/Makefile | 3
- net/can/raw.c | 822 ++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 867 insertions(+)
+ net/can/raw.c | 821 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 866 insertions(+)
Index: net-2.6.24/include/linux/can/raw.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/include/linux/can/raw.h 2007-09-25 13:23:05.000000000 +0200
++++ net-2.6.24/include/linux/can/raw.h 2007-10-02 08:33:39.000000000 +0200
@@ -0,0 +1,31 @@
+/*
+ * linux/can/raw.h
+#endif
Index: net-2.6.24/net/can/Kconfig
===================================================================
---- net-2.6.24.orig/net/can/Kconfig 2007-09-25 13:14:46.000000000 +0200
-+++ net-2.6.24/net/can/Kconfig 2007-09-25 13:31:06.000000000 +0200
+--- net-2.6.24.orig/net/can/Kconfig 2007-10-02 06:18:29.000000000 +0200
++++ net-2.6.24/net/can/Kconfig 2007-10-02 08:35:31.000000000 +0200
@@ -16,6 +16,17 @@
If you want CAN support, you should say Y here and also to the
specific driver for your controller(s) below.
depends on CAN
Index: net-2.6.24/net/can/Makefile
===================================================================
---- net-2.6.24.orig/net/can/Makefile 2007-09-25 13:14:46.000000000 +0200
-+++ net-2.6.24/net/can/Makefile 2007-09-25 13:29:23.000000000 +0200
+--- net-2.6.24.orig/net/can/Makefile 2007-10-02 06:18:29.000000000 +0200
++++ net-2.6.24/net/can/Makefile 2007-10-02 08:35:31.000000000 +0200
@@ -4,3 +4,6 @@
obj-$(CONFIG_CAN) += can.o
Index: net-2.6.24/net/can/raw.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/raw.c 2007-09-25 13:25:24.000000000 +0200
-@@ -0,0 +1,822 @@
++++ net-2.6.24/net/can/raw.c 2007-10-02 08:35:48.000000000 +0200
+@@ -0,0 +1,821 @@
+/*
+ * raw.c - Raw sockets for protocol family CAN
+ *
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
include/linux/can/bcm.h | 65 +
net/can/Kconfig | 13
net/can/Makefile | 3
- net/can/bcm.c | 1778 ++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 1859 insertions(+)
+ net/can/bcm.c | 1774 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 1855 insertions(+)
Index: net-2.6.24/include/linux/can/bcm.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/include/linux/can/bcm.h 2007-09-25 13:31:23.000000000 +0200
++++ net-2.6.24/include/linux/can/bcm.h 2007-10-02 08:33:40.000000000 +0200
@@ -0,0 +1,65 @@
+/*
+ * linux/can/bcm.h
+#endif /* CAN_BCM_H */
Index: net-2.6.24/net/can/Kconfig
===================================================================
---- net-2.6.24.orig/net/can/Kconfig 2007-09-25 13:31:06.000000000 +0200
-+++ net-2.6.24/net/can/Kconfig 2007-09-25 13:31:46.000000000 +0200
+--- net-2.6.24.orig/net/can/Kconfig 2007-10-02 08:33:39.000000000 +0200
++++ net-2.6.24/net/can/Kconfig 2007-10-02 08:33:40.000000000 +0200
@@ -27,6 +27,19 @@
socket has several filter options e.g. ID-Masking / Errorframes.
To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.
depends on CAN
Index: net-2.6.24/net/can/Makefile
===================================================================
---- net-2.6.24.orig/net/can/Makefile 2007-09-25 13:29:23.000000000 +0200
-+++ net-2.6.24/net/can/Makefile 2007-09-25 13:31:23.000000000 +0200
+--- net-2.6.24.orig/net/can/Makefile 2007-10-02 08:33:39.000000000 +0200
++++ net-2.6.24/net/can/Makefile 2007-10-02 08:33:40.000000000 +0200
@@ -7,3 +7,6 @@
obj-$(CONFIG_CAN_RAW) += can-raw.o
Index: net-2.6.24/net/can/bcm.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/net/can/bcm.c 2007-09-25 13:31:23.000000000 +0200
-@@ -0,0 +1,1778 @@
++++ net-2.6.24/net/can/bcm.c 2007-10-02 08:35:04.000000000 +0200
+@@ -0,0 +1,1774 @@
+/*
+ * bcm.c - Broadcast Manager to filter/send (cyclic) CAN content
+ *
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
+ return;
+ }
+
-+ skb = alloc_skb(CFSIZ,
-+ in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-+
++ skb = alloc_skb(CFSIZ, gfp_any());
+ if (!skb)
+ goto out;
+
+ int datalen = head->nframes * CFSIZ;
+ int err;
+
-+ skb = alloc_skb(sizeof(*head) + datalen,
-+ in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
++ skb = alloc_skb(sizeof(*head) + datalen, gfp_any());
+ if (!skb)
+ return;
+
drivers/net/Makefile | 1
drivers/net/can/Kconfig | 25 +++++
drivers/net/can/Makefile | 5 +
- drivers/net/can/vcan.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++
+ drivers/net/can/vcan.c | 207 +++++++++++++++++++++++++++++++++++++++++++++++
net/can/Kconfig | 3
- 5 files changed, 242 insertions(+)
+ 5 files changed, 241 insertions(+)
Index: net-2.6.24/drivers/net/Makefile
===================================================================
---- net-2.6.24.orig/drivers/net/Makefile 2007-09-25 13:28:42.000000000 +0200
-+++ net-2.6.24/drivers/net/Makefile 2007-09-25 13:32:23.000000000 +0200
+--- net-2.6.24.orig/drivers/net/Makefile 2007-09-25 15:28:51.000000000 +0200
++++ net-2.6.24/drivers/net/Makefile 2007-10-02 08:42:20.000000000 +0200
@@ -10,6 +10,7 @@
obj-$(CONFIG_CHELSIO_T1) += chelsio/
obj-$(CONFIG_CHELSIO_T3) += cxgb3/
Index: net-2.6.24/drivers/net/can/Kconfig
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/drivers/net/can/Kconfig 2007-09-25 13:32:23.000000000 +0200
++++ net-2.6.24/drivers/net/can/Kconfig 2007-10-02 08:42:20.000000000 +0200
@@ -0,0 +1,25 @@
+menu "CAN Device Drivers"
+ depends on CAN
Index: net-2.6.24/drivers/net/can/Makefile
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/drivers/net/can/Makefile 2007-09-25 13:32:23.000000000 +0200
++++ net-2.6.24/drivers/net/can/Makefile 2007-10-02 08:42:20.000000000 +0200
@@ -0,0 +1,5 @@
+#
+# Makefile for the Linux Controller Area Network drivers.
Index: net-2.6.24/drivers/net/can/vcan.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/drivers/net/can/vcan.c 2007-09-25 13:32:23.000000000 +0200
-@@ -0,0 +1,208 @@
++++ net-2.6.24/drivers/net/can/vcan.c 2007-10-02 08:42:52.000000000 +0200
+@@ -0,0 +1,207 @@
+/*
+ * vcan.c - Virtual CAN interface
+ *
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions, the following disclaimer and
-+ * the referenced file 'COPYING'.
++ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Alternatively, provided that this notice is retained in full, this
+ * software may be distributed under the terms of the GNU General
-+ * Public License ("GPL") version 2 as distributed in the 'COPYING'
-+ * file from the main directory of the linux kernel source.
++ * Public License ("GPL") version 2, in which case the provisions of the
++ * GPL apply INSTEAD OF those given above.
+ *
+ * The provided data structures and external interfaces from this code
+ * are not restricted to be used by modules with a GPL compatible license.
+
+/*
+ * CAN test feature:
-+ * Enable the loopback on driver level for testing the CAN core loopback modes.
++ * Enable the echo on driver level for testing the CAN core echo modes.
+ * See Documentation/networking/can.txt for details.
+ */
+
-+static int loopback; /* loopback testing. Default: 0 (Off) */
-+module_param(loopback, int, S_IRUGO);
-+MODULE_PARM_DESC(loopback, "Loop back frames (for testing). Default: 0 (Off)");
++static int echo; /* echo testing. Default: 0 (Off) */
++module_param(echo, int, S_IRUGO);
++MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)");
+
+
+static int vcan_open(struct net_device *dev)
+ /* set flag whether this packet has to be looped back */
+ loop = skb->pkt_type == PACKET_LOOPBACK;
+
-+ if (!loopback) {
-+ /* no loopback handling available inside this driver */
++ if (!echo) {
++ /* no echo handling available inside this driver */
+
+ if (loop) {
+ /*
+ * only count the packets here, because the
-+ * CAN core already did the loopback for us
++ * CAN core already did the echo for us
+ */
+ stats->rx_packets++;
+ stats->rx_bytes += skb->len;
+ return 0;
+ }
+
-+ /* perform standard loopback handling for CAN network interfaces */
++ /* perform standard echo handling for CAN network interfaces */
+
+ if (loop) {
+ struct sock *srcsk = skb->sk;
+ dev->flags = IFF_NOARP;
+
+ /* set flags according to driver capabilities */
-+ if (loopback)
-+ dev->flags |= IFF_LOOPBACK;
++ if (echo)
++ dev->flags |= IFF_ECHO;
+
+ dev->open = vcan_open;
+ dev->stop = vcan_stop;
+{
+ printk(banner);
+
-+ if (loopback)
-+ printk(KERN_INFO "vcan: enabled loopback on driver level.\n");
++ if (echo)
++ printk(KERN_INFO "vcan: enabled echo on driver level.\n");
+
+ return rtnl_link_register(&vcan_link_ops);
+}
+module_exit(vcan_cleanup_module);
Index: net-2.6.24/net/can/Kconfig
===================================================================
---- net-2.6.24.orig/net/can/Kconfig 2007-09-25 13:32:23.000000000 +0200
-+++ net-2.6.24/net/can/Kconfig 2007-09-25 13:32:23.000000000 +0200
+--- net-2.6.24.orig/net/can/Kconfig 2007-10-02 08:42:19.000000000 +0200
++++ net-2.6.24/net/can/Kconfig 2007-10-02 08:42:20.000000000 +0200
@@ -47,3 +47,6 @@
Say Y here if you want the CAN core to produce a bunch of debug
messages to the system log. Select this if you are having a
---
Documentation/networking/00-INDEX | 2
- Documentation/networking/can.txt | 634 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 636 insertions(+)
+ Documentation/networking/can.txt | 637 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 639 insertions(+)
Index: net-2.6.24/Documentation/networking/can.txt
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/Documentation/networking/can.txt 2007-09-25 13:28:26.000000000 +0200
-@@ -0,0 +1,634 @@
++++ net-2.6.24/Documentation/networking/can.txt 2007-10-02 08:43:50.000000000 +0200
+@@ -0,0 +1,637 @@
+============================================================================
+
+can.txt
+
+ 3 Socket CAN concept
+ 3.1 receive lists
-+ 3.2 loopback
++ 3.2 local loopback of sent frames
+ 3.3 network security issues (capabilities)
+ 3.4 network problem notifications
+
+
+ 6 CAN network drivers
+ 6.1 general settings
-+ 6.2 loopback
++ 6.2 local loopback of sent frames
+ 6.3 CAN controller hardware filters
+ 6.4 currently supported CAN hardware
+ 6.5 todo
+ into several specific lists per device that match the requested
+ filter complexity for a given use-case.
+
-+ 3.2 loopback
++ 3.2 local loopback of sent frames
+
+ As known from other networking concepts the data exchanging
+ applications may run on the same or different nodes without any
+
+ To ensure that application A receives the same information in the
+ example (2) as it would receive in example (1) there is need for
-+ some kind of local loopback on the appropriate node.
++ some kind of local loopback of the sent CAN frames on the appropriate
++ node.
+
+ The Linux network devices (by default) just can handle the
+ transmission and reception of media dependent frames. Due to the
+ The struct can_frame is the payload of each socket buffer in the
+ protocol family PF_CAN.
+
-+ 6.2 loopback
++ 6.2 local loopback of sent frames
+
+ As described in chapter 3.2 the CAN network device driver should
-+ support a local loopback functionality. In this case the driver flag
-+ IFF_LOOPBACK has to be set to cause the PF_CAN core to not perform the
-+ loopback as fallback solution:
++ support a local loopback functionality similar to the local echo
++ e.g. of tty devices. In this case the driver flag IFF_ECHO has to be
++ set to prevent the PF_CAN core from locally echoing sent frames
++ (aka loopback) as fallback solution:
+
-+ dev->flags = (IFF_NOARP | IFF_LOOPBACK);
++ dev->flags = (IFF_NOARP | IFF_ECHO);
+
+ 6.3 CAN controller hardware filters
+
+ @133MHz with four SJA1000 CAN controllers from 2002 under heavy bus
+ load without any problems ...
+
-+ 6.4 currently supported CAN hardware (May 2007)
++ 6.4 currently supported CAN hardware (September 2007)
+
+ On the project website http://developer.berlios.de/projects/socketcan
+ there are different drivers available:
+ sja1000: Philips SJA1000 CAN controller (recommended)
+ i82527: Intel i82527 CAN controller
+ mscan: Motorola/Freescale CAN controller (e.g. inside SOC MPC5200)
++ ccan: CCAN controller core (e.g. inside SOC h7202)
+ slcan: For a bunch of CAN adaptors that are attached via a
+ serial line ASCII protocol (for serial / USB adaptors)
+
+
+ Please check the Mailing Lists on the berlios OSS project website.
+
-+ 6.5 todo (May 2007)
++ 6.5 todo (September 2007)
+
+ The configuration interface for CAN network drivers is still an open
+ issue that has not been finalized in the socketcan project. Also the
+ Michael Schulze (driver layer loopback requirement, RT CAN drivers review)
Index: net-2.6.24/Documentation/networking/00-INDEX
===================================================================
---- net-2.6.24.orig/Documentation/networking/00-INDEX 2007-09-24 17:53:07.000000000 +0200
-+++ net-2.6.24/Documentation/networking/00-INDEX 2007-09-25 13:27:55.000000000 +0200
+--- net-2.6.24.orig/Documentation/networking/00-INDEX 2007-09-25 15:28:50.000000000 +0200
++++ net-2.6.24/Documentation/networking/00-INDEX 2007-10-02 08:43:21.000000000 +0200
@@ -26,6 +26,8 @@
- info on the driver for Baycom style amateur radio modems
bridge.txt
SUBJECT
-CAN: Add new PF_CAN protocol family, try #8
+CAN: Add new PF_CAN protocol family, try #9
ESUBJECT
Hello Dave, hello Patrick,
Since our last post we have changed the following:
+* 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
+
+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.
This patch series applies against net-2.6.24 and is derived from Subversion
-revision r493 of http://svn.berlios.de/svnroot/repos/socketcan.
+revision r511 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>.