br_features_recompute(br); 
int br_add_if(struct net_bridge *br, struct net_device *dev){	struct net_bridge_port *p;	int err = 0;	if (dev->flags & IFF_LOOPBACK || dev->type != ARPHRD_ETHER)		return -EINVAL;	if (dev->hard_start_xmit == br_dev_xmit)		return -ELOOP;	if (dev->br_port != NULL)		return -EBUSY;	if (IS_ERR(p = new_nbp(br, dev, br_initial_port_cost(dev))))		return PTR_ERR(p); 	if ((err = br_fdb_insert(br, p, dev->dev_addr)))		destroy_nbp(p); 	else if ((err = br_sysfs_addif(p)))		del_nbp(p);	else {		dev_set_promiscuity(dev, 1);		list_add_rcu(&p->list, &br->port_list);		spin_lock_bh(&br->lock);		br_stp_recalculate_bridge_id(br);		if ((br->dev->flags & IFF_UP) 		    && (dev->flags & IFF_UP) && netif_carrier_ok(dev))			br_stp_enable_port(p);		spin_unlock_bh(&br->lock);		dev_set_mtu(br->dev, br_min_mtu(br));	}	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/133747e8d1e912863edfb3869e36b97b9939d4fc/br_if.c/buggy/net/bridge/br_if.c