diff options
author | Christoph Hellwig <hch@lst.de> | 2005-05-05 23:25:59 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-05-05 23:25:59 +0200 |
commit | 3ef4e9a8db6c65de7c7f4bc013d62b0d73f50dce (patch) | |
tree | 37f049c9a77ceaa5f10d98206254a230b8a178d9 | |
parent | [IPV6]: Fix OOPS when using IPV6_ADDRFORM (diff) | |
download | linux-3ef4e9a8db6c65de7c7f4bc013d62b0d73f50dce.tar.xz linux-3ef4e9a8db6c65de7c7f4bc013d62b0d73f50dce.zip |
[ATALK]: Add alloc_ltalkdev().
this matches the API used by other link layer like ethernet or token
ring.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/appletalk/cops.c | 4 | ||||
-rw-r--r-- | drivers/net/appletalk/ltpc.c | 2 | ||||
-rw-r--r-- | include/linux/if_ltalk.h | 2 | ||||
-rw-r--r-- | net/appletalk/dev.c | 22 |
4 files changed, 24 insertions, 6 deletions
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c index 2161c2d585f0..9edaa183227a 100644 --- a/drivers/net/appletalk/cops.c +++ b/drivers/net/appletalk/cops.c @@ -65,7 +65,7 @@ static const char *version = #include <linux/etherdevice.h> #include <linux/skbuff.h> #include <linux/if_arp.h> -#include <linux/if_ltalk.h> /* For ltalk_setup() */ +#include <linux/if_ltalk.h> #include <linux/delay.h> /* For udelay() */ #include <linux/atalk.h> #include <linux/spinlock.h> @@ -223,7 +223,7 @@ struct net_device * __init cops_probe(int unit) int base_addr; int err = 0; - dev = alloc_netdev(sizeof(struct cops_local), "lt%d", ltalk_setup); + dev = alloc_ltalkdev(sizeof(struct cops_local)); if (!dev) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c index ad8e943231a1..db4f369637b6 100644 --- a/drivers/net/appletalk/ltpc.c +++ b/drivers/net/appletalk/ltpc.c @@ -1039,7 +1039,7 @@ struct net_device * __init ltpc_probe(void) unsigned long f; unsigned long timeout; - dev = alloc_netdev(sizeof(struct ltpc_private), "lt%d", ltalk_setup); + dev = alloc_ltalkdev(sizeof(struct ltpc_private)); if (!dev) goto out; diff --git a/include/linux/if_ltalk.h b/include/linux/if_ltalk.h index e75e832b7ff0..76525760ba48 100644 --- a/include/linux/if_ltalk.h +++ b/include/linux/if_ltalk.h @@ -6,7 +6,7 @@ #define LTALK_ALEN 1 #ifdef __KERNEL__ -extern void ltalk_setup(struct net_device *); +extern struct net_device *alloc_ltalkdev(int sizeof_priv); #endif #endif diff --git a/net/appletalk/dev.c b/net/appletalk/dev.c index 76598445d84b..1237e208e246 100644 --- a/net/appletalk/dev.c +++ b/net/appletalk/dev.c @@ -19,7 +19,7 @@ static int ltalk_mac_addr(struct net_device *dev, void *addr) return -EINVAL; } -void ltalk_setup(struct net_device *dev) +static void ltalk_setup(struct net_device *dev) { /* Fill in the fields of the device structure with localtalk-generic values. */ @@ -40,4 +40,22 @@ void ltalk_setup(struct net_device *dev) dev->flags = IFF_BROADCAST|IFF_MULTICAST|IFF_NOARP; } -EXPORT_SYMBOL(ltalk_setup); + +/** + * alloc_ltalkdev - Allocates and sets up an localtalk device + * @sizeof_priv: Size of additional driver-private structure to be allocated + * for this localtalk device + * + * Fill in the fields of the device structure with localtalk-generic + * values. Basically does everything except registering the device. + * + * Constructs a new net device, complete with a private data area of + * size @sizeof_priv. A 32-byte (not bit) alignment is enforced for + * this private data area. + */ + +struct net_device *alloc_ltalkdev(int sizeof_priv) +{ + return alloc_netdev(sizeof_priv, "lt%d", ltalk_setup); +} +EXPORT_SYMBOL(alloc_ltalkdev); |