Ejemplo n.º 1
0
int br_del_bridge(char *name)
{
	struct net_device *dev;
	struct net_bridge *br;

	dev = __dev_get_by_name(name);
	if (!dev)
		return -ENXIO;

	if (dev->hard_start_xmit != br_dev_xmit)
		return -EPERM;

	if (dev->flags & IFF_UP)
		return -EBUSY;

	br = dev->priv;
	BUG_ON(&br->dev != dev);

	del_ifs(br);

	unregister_netdevice(dev);
	kfree(br);
	br_dec_use_count();

	return 0;
}
Ejemplo n.º 2
0
Archivo: br_if.c Proyecto: nhanh0/hah
int br_del_bridge(char *name)
{
	struct net_bridge **b;
	struct net_bridge *br;

	if ((b = __find_br(name)) == NULL)
		return -ENXIO;

	br = *b;

	if (br->dev.flags & IFF_UP)
		return -EBUSY;

	del_ifs(br);

	*b = br->next;

	unregister_netdev(&br->dev);
	kfree(br);
	br_dec_use_count();

	return 0;
}