int ctrl_bridge_init(void)
{
	struct ctrl_bridge	*dev;
	int			i;
	int			retval = 0;

	for (i = 0; i < MAX_BRIDGE_DEVICES; i++) {

		dev = kzalloc(sizeof(*dev), GFP_KERNEL);
		if (!dev) {
			pr_err("%s: unable to allocate dev\n", __func__);
			retval = -ENOMEM;
			goto error;
		}

		/*transport name will be set during probe*/
		dev->name = "none";

		spin_lock_init(&dev->lock);
		init_usb_anchor(&dev->tx_submitted);
		init_usb_anchor(&dev->tx_deferred);

		__dev[i] = dev;
	}

	ctrl_bridge_debugfs_init();

	return 0;

error:
	while (--i >= 0) {
		kfree(__dev[i]);
		__dev[i] = NULL;
	}

	return retval;
}
예제 #2
0
static int __init ctrl_bridge_init(void)
{
	ctrl_bridge_debugfs_init();

	return 0;
}