--- /dev/null
+diff -ru linux-2.6.23-vanilla/CREDITS linux-2.6.23/CREDITS
+--- linux-2.6.23-vanilla/CREDITS 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/CREDITS 2008-05-07 11:44:21.000000000 +0200
+@@ -1331,6 +1331,14 @@
+ S: 5623 HZ Eindhoven
+ S: The Netherlands
+
++N: Oliver Hartkopp
++E: oliver.hartkopp@volkswagen.de
++W: http://www.volkswagen.de
++D: Controller Area Network (network layer core)
++S: Brieffach 1776
++S: 38436 Wolfsburg
++S: Germany
++
+ N: Andrew Haylett
+ E: ajh@primag.co.uk
+ D: Selection mechanism
+@@ -3284,6 +3292,14 @@
+ S: F-35042 Rennes Cedex
+ S: France
+
++N: Urs Thuermann
++E: urs.thuermann@volkswagen.de
++W: http://www.volkswagen.de
++D: Controller Area Network (network layer core)
++S: Brieffach 1776
++S: 38436 Wolfsburg
++S: Germany
++
+ N: Jon Tombs
+ E: jon@gte.esi.us.es
+ W: http://www.esi.us.es/~jon
+diff -ru linux-2.6.23-vanilla/drivers/net/Makefile linux-2.6.23/drivers/net/Makefile
+--- linux-2.6.23-vanilla/drivers/net/Makefile 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/drivers/net/Makefile 2008-05-07 11:44:21.000000000 +0200
+@@ -8,6 +8,7 @@
+ obj-$(CONFIG_CHELSIO_T1) += chelsio/
+ obj-$(CONFIG_CHELSIO_T3) += cxgb3/
+ obj-$(CONFIG_EHEA) += ehea/
++obj-$(CONFIG_CAN) += can/
+ obj-$(CONFIG_BONDING) += bonding/
+ obj-$(CONFIG_ATL1) += atl1/
+ obj-$(CONFIG_GIANFAR) += gianfar_driver.o
+diff -ru linux-2.6.23-vanilla/include/linux/if_arp.h linux-2.6.23/include/linux/if_arp.h
+--- linux-2.6.23-vanilla/include/linux/if_arp.h 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/include/linux/if_arp.h 2008-05-07 11:44:21.000000000 +0200
+@@ -52,6 +52,7 @@
+ #define ARPHRD_ROSE 270
+ #define ARPHRD_X25 271 /* CCITT X.25 */
+ #define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
++#define ARPHRD_CAN 280 /* Controller Area Network */
+ #define ARPHRD_PPP 512
+ #define ARPHRD_CISCO 513 /* Cisco HDLC */
+ #define ARPHRD_HDLC ARPHRD_CISCO
+diff -ru linux-2.6.23-vanilla/include/linux/if_ether.h linux-2.6.23/include/linux/if_ether.h
+--- linux-2.6.23-vanilla/include/linux/if_ether.h 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/include/linux/if_ether.h 2008-05-07 11:44:21.000000000 +0200
+@@ -90,6 +90,7 @@
+ #define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/
+ #define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */
+ #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
++#define ETH_P_CAN 0x000C /* Controller Area Network */
+ #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
+ #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
+ #define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */
+diff -ru linux-2.6.23-vanilla/include/linux/socket.h linux-2.6.23/include/linux/socket.h
+--- linux-2.6.23-vanilla/include/linux/socket.h 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/include/linux/socket.h 2008-05-07 11:44:21.000000000 +0200
+@@ -185,6 +185,7 @@
+ #define AF_PPPOX 24 /* PPPoX sockets */
+ #define AF_WANPIPE 25 /* Wanpipe API Sockets */
+ #define AF_LLC 26 /* Linux LLC */
++#define AF_CAN 29 /* Controller Area Network */
+ #define AF_TIPC 30 /* TIPC sockets */
+ #define AF_BLUETOOTH 31 /* Bluetooth sockets */
+ #define AF_IUCV 32 /* IUCV sockets */
+@@ -220,6 +221,7 @@
+ #define PF_PPPOX AF_PPPOX
+ #define PF_WANPIPE AF_WANPIPE
+ #define PF_LLC AF_LLC
++#define PF_CAN AF_CAN
+ #define PF_TIPC AF_TIPC
+ #define PF_BLUETOOTH AF_BLUETOOTH
+ #define PF_IUCV AF_IUCV
+diff -ru linux-2.6.23-vanilla/include/linux/tty.h linux-2.6.23/include/linux/tty.h
+--- linux-2.6.23-vanilla/include/linux/tty.h 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/include/linux/tty.h 2008-05-07 11:44:21.000000000 +0200
+@@ -24,7 +24,7 @@
+ #define NR_PTYS CONFIG_LEGACY_PTY_COUNT /* Number of legacy ptys */
+ #define NR_UNIX98_PTY_DEFAULT 4096 /* Default maximum for Unix98 ptys */
+ #define NR_UNIX98_PTY_MAX (1 << MINORBITS) /* Absolute limit */
+-#define NR_LDISCS 17
++#define NR_LDISCS 18
+
+ /* line disciplines */
+ #define N_TTY 0
+@@ -45,6 +45,7 @@
+ #define N_SYNC_PPP 14 /* synchronous PPP */
+ #define N_HCI 15 /* Bluetooth HCI UART */
+ #define N_GIGASET_M101 16 /* Siemens Gigaset M101 serial DECT adapter */
++#define N_SLCAN 17 /* Serial / USB serial CAN Adaptors */
+
+ /*
+ * This character is the same as _POSIX_VDISABLE: it cannot be used as
+diff -ru linux-2.6.23-vanilla/MAINTAINERS linux-2.6.23/MAINTAINERS
+--- linux-2.6.23-vanilla/MAINTAINERS 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/MAINTAINERS 2008-05-07 11:44:21.000000000 +0200
+@@ -967,6 +967,15 @@
+ L: video4linux-list@redhat.com
+ S: Maintained
+
++CAN NETWORK LAYER
++P: Urs Thuermann
++M: urs.thuermann@volkswagen.de
++P: Oliver Hartkopp
++M: oliver.hartkopp@volkswagen.de
++L: socketcan-core@lists.berlios.de
++W: http://developer.berlios.de/projects/socketcan/
++S: Maintained
++
+ CALGARY x86-64 IOMMU
+ P: Muli Ben-Yehuda
+ M: muli@il.ibm.com
+diff -ru linux-2.6.23-vanilla/net/core/sock.c linux-2.6.23/net/core/sock.c
+--- linux-2.6.23-vanilla/net/core/sock.c 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/net/core/sock.c 2008-05-07 11:44:21.000000000 +0200
+@@ -153,7 +153,7 @@
+ "sk_lock-AF_ASH" , "sk_lock-AF_ECONET" , "sk_lock-AF_ATMSVC" ,
+ "sk_lock-21" , "sk_lock-AF_SNA" , "sk_lock-AF_IRDA" ,
+ "sk_lock-AF_PPPOX" , "sk_lock-AF_WANPIPE" , "sk_lock-AF_LLC" ,
+- "sk_lock-27" , "sk_lock-28" , "sk_lock-29" ,
++ "sk_lock-27" , "sk_lock-28" , "sk_lock-AF_CAN" ,
+ "sk_lock-AF_TIPC" , "sk_lock-AF_BLUETOOTH", "sk_lock-IUCV" ,
+ "sk_lock-AF_RXRPC" , "sk_lock-AF_MAX"
+ };
+@@ -167,7 +167,7 @@
+ "slock-AF_ASH" , "slock-AF_ECONET" , "slock-AF_ATMSVC" ,
+ "slock-21" , "slock-AF_SNA" , "slock-AF_IRDA" ,
+ "slock-AF_PPPOX" , "slock-AF_WANPIPE" , "slock-AF_LLC" ,
+- "slock-27" , "slock-28" , "slock-29" ,
++ "slock-27" , "slock-28" , "slock-AF_CAN" ,
+ "slock-AF_TIPC" , "slock-AF_BLUETOOTH", "slock-AF_IUCV" ,
+ "slock-AF_RXRPC" , "slock-AF_MAX"
+ };
+diff -ru linux-2.6.23-vanilla/net/Kconfig linux-2.6.23/net/Kconfig
+--- linux-2.6.23-vanilla/net/Kconfig 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/net/Kconfig 2008-05-07 11:44:21.000000000 +0200
+@@ -210,6 +210,7 @@
+ endmenu
+
+ source "net/ax25/Kconfig"
++source "net/can/Kconfig"
+ source "net/irda/Kconfig"
+ source "net/bluetooth/Kconfig"
+ source "net/rxrpc/Kconfig"
+diff -ru linux-2.6.23-vanilla/net/Makefile linux-2.6.23/net/Makefile
+--- linux-2.6.23-vanilla/net/Makefile 2007-10-09 22:31:38.000000000 +0200
++++ linux-2.6.23/net/Makefile 2008-05-07 11:44:21.000000000 +0200
+@@ -34,6 +34,7 @@
+ obj-$(CONFIG_NETROM) += netrom/
+ obj-$(CONFIG_ROSE) += rose/
+ obj-$(CONFIG_AX25) += ax25/
++obj-$(CONFIG_CAN) += can/
+ obj-$(CONFIG_IRDA) += irda/
+ obj-$(CONFIG_BT) += bluetooth/
+ obj-$(CONFIG_SUNRPC) += sunrpc/