示例#1
0
文件: ifb.c 项目: ena30/snake-os
static int __init ifb_init_module(void)
{ 
	int i, err = 0;
	ifbs = kmalloc(numifbs * sizeof(void *), GFP_KERNEL); 
	if (!ifbs)
		return -ENOMEM; 
	for (i = 0; i < numifbs && !err; i++)
		err = ifb_init_one(i); 
	if (err) { 
		while (--i >= 0)
			ifb_free_one(i);
	}

	return err;
} 
static int __init ifb_init_module(void)
{
	int i, err;

	rtnl_lock();
	err = __rtnl_link_register(&ifb_link_ops);

	for (i = 0; i < numifbs && !err; i++)
		err = ifb_init_one(i);
	if (err)
		__rtnl_link_unregister(&ifb_link_ops);
	rtnl_unlock();

	return err;
}
示例#3
0
static int __init ifb_init_module(void)
{
	int i, err;

	rtnl_lock();
	err = __rtnl_link_register(&ifb_link_ops);
	if (err < 0)
		goto out;

	for (i = 0; i < numifbs && !err; i++) {
		err = ifb_init_one(i);
		cond_resched();
	}
	if (err)
		__rtnl_link_unregister(&ifb_link_ops);

out:
	rtnl_unlock();

	return err;
}