ieee1394: eth1394: fix error path in module_init
This patch fixes some error handlings in eth1394: - check return value of kmem_cache_create() - cleanup resources if hpsb_register_protocol() fails Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (whitespace)
This commit is contained in:
parent
fdc0092bfd
commit
809e905ce7
|
@ -1667,17 +1667,26 @@ static struct ethtool_ops ethtool_ops = {
|
|||
.get_drvinfo = ether1394_get_drvinfo
|
||||
};
|
||||
|
||||
static int __init ether1394_init_module (void)
|
||||
static int __init ether1394_init_module(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
packet_task_cache = kmem_cache_create("packet_task",
|
||||
sizeof(struct packet_task),
|
||||
0, 0, NULL, NULL);
|
||||
if (!packet_task_cache)
|
||||
return -ENOMEM;
|
||||
|
||||
hpsb_register_highlevel(ð1394_highlevel);
|
||||
return hpsb_register_protocol(ð1394_proto_driver);
|
||||
err = hpsb_register_protocol(ð1394_proto_driver);
|
||||
if (err) {
|
||||
hpsb_unregister_highlevel(ð1394_highlevel);
|
||||
kmem_cache_destroy(packet_task_cache);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static void __exit ether1394_exit_module (void)
|
||||
static void __exit ether1394_exit_module(void)
|
||||
{
|
||||
hpsb_unregister_protocol(ð1394_proto_driver);
|
||||
hpsb_unregister_highlevel(ð1394_highlevel);
|
||||
|
|
Loading…
Reference in a new issue