From 181fe58c712af60513ff79a6866714f697461444 Mon Sep 17 00:00:00 2001 From: Alexey Dobriyan Date: Tue, 27 Sep 2005 15:44:36 -0700 Subject: [PATCH] --- yaml --- r: 9439 b: refs/heads/master c: a83cd2cc90bd9390cf03cd40bba204d9ed520633 h: refs/heads/master i: 9437: 896ef1d3ad9d7a13221067ab23050a73c7feabb5 9435: 6b15d0d813952fd36711768751b108bc5189d987 9431: 166f2e1d0bec85e94ea6765d366b1708e8f0270f 9423: 12249284441408c35e1788bbb2a4b9ad7dc25b60 9407: 351d74156788e9502b22cb939968b4a4e027f6f4 v: v3 --- [refs] | 2 +- trunk/net/rose/af_rose.c | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index c02c7102ca27..8d227c412211 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 70ff3b66d79c5110e533f3f2aea1a5b2fc5f8d90 +refs/heads/master: a83cd2cc90bd9390cf03cd40bba204d9ed520633 diff --git a/trunk/net/rose/af_rose.c b/trunk/net/rose/af_rose.c index dbfb0e3dc798..0f96565a64ec 100644 --- a/trunk/net/rose/af_rose.c +++ b/trunk/net/rose/af_rose.c @@ -1472,24 +1472,25 @@ static const char banner[] = KERN_INFO "F6FBB/G4KLX ROSE for Linux. Version 0.62 static int __init rose_proto_init(void) { int i; - int rc = proto_register(&rose_proto, 0); + int rc; + if (rose_ndevs > 0x7FFFFFFF/sizeof(struct net_device *)) { + printk(KERN_ERR "ROSE: rose_proto_init - rose_ndevs parameter to large\n"); + rc = -EINVAL; + goto out; + } + + rc = proto_register(&rose_proto, 0); if (rc != 0) goto out; rose_callsign = null_ax25_address; - if (rose_ndevs > 0x7FFFFFFF/sizeof(struct net_device *)) { - printk(KERN_ERR "ROSE: rose_proto_init - rose_ndevs parameter to large\n"); - proto_unregister(&rose_proto); - return -EINVAL; - } - dev_rose = kmalloc(rose_ndevs * sizeof(struct net_device *), GFP_KERNEL); if (dev_rose == NULL) { printk(KERN_ERR "ROSE: rose_proto_init - unable to allocate device structure\n"); - proto_unregister(&rose_proto); - return -ENOMEM; + rc = -ENOMEM; + goto out_proto_unregister; } memset(dev_rose, 0x00, rose_ndevs * sizeof(struct net_device*)); @@ -1540,6 +1541,7 @@ static int __init rose_proto_init(void) free_netdev(dev_rose[i]); } kfree(dev_rose); +out_proto_unregister: proto_unregister(&rose_proto); goto out; }