diff options
author | Andreas Oberritter <devnull@localhost> | 2005-03-17 03:12:43 +0000 |
---|---|---|
committer | Andreas Oberritter <devnull@localhost> | 2005-03-17 03:12:43 +0000 |
commit | 53bcd1a4d223da832c2c8734bd53b21b2d25d5f5 (patch) | |
tree | fcbe2cd28ab77698a3dd5195eb531e8e871e9084 /linux/drivers/media/dvb | |
parent | e76152b935df8a52a16ee526f6573e7e4d41e6d7 (diff) | |
download | mediapointer-dvb-s2-53bcd1a4d223da832c2c8734bd53b21b2d25d5f5.tar.gz mediapointer-dvb-s2-53bcd1a4d223da832c2c8734bd53b21b2d25d5f5.tar.bz2 |
Modified dvb_register_adapter() to avoid kmalloc/kfree. Drivers have to
embed struct dvb_adapter into their private data struct from now on.
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvbdev.c | 9 | ||||
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvbdev.h | 2 |
2 files changed, 2 insertions, 9 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.c b/linux/drivers/media/dvb/dvb-core/dvbdev.c index 94b3bfb51..ff5844388 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.c +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.c @@ -285,9 +285,8 @@ skip: } -int dvb_register_adapter(struct dvb_adapter **padap, const char *name, struct module *module) +int dvb_register_adapter(struct dvb_adapter *adap, const char *name, struct module *module) { - struct dvb_adapter *adap; int num; if (down_interruptible (&dvbdev_register_lock)) @@ -298,11 +297,6 @@ int dvb_register_adapter(struct dvb_adapter **padap, const char *name, struct mo return -ENFILE; } - if (!(*padap = adap = kmalloc(sizeof(struct dvb_adapter), GFP_KERNEL))) { - up(&dvbdev_register_lock); - return -ENOMEM; - } - memset (adap, 0, sizeof(struct dvb_adapter)); INIT_LIST_HEAD (&adap->device_list); @@ -330,7 +324,6 @@ int dvb_unregister_adapter(struct dvb_adapter *adap) return -ERESTARTSYS; list_del (&adap->list_head); up (&dvbdev_register_lock); - kfree (adap); return 0; } EXPORT_SYMBOL(dvb_unregister_adapter); diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.h b/linux/drivers/media/dvb/dvb-core/dvbdev.h index 184edba3c..a251867f3 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.h +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.h @@ -76,7 +76,7 @@ struct dvb_device { }; -extern int dvb_register_adapter (struct dvb_adapter **padap, const char *name, struct module *module); +extern int dvb_register_adapter (struct dvb_adapter *adap, const char *name, struct module *module); extern int dvb_unregister_adapter (struct dvb_adapter *adap); extern int dvb_register_device (struct dvb_adapter *adap, |