printk(KERN_WARNING DRV_NAME ": Warning: link status changed for uninitialized port on %s\n", slave->dev->name); 
printk(KERN_WARNING DRV_NAME ": Warning: %s: link status changed for " "uninitialized port on %s\n", slave->dev->master->name, slave->dev->name); 
void bond_3ad_handle_link_change(struct slave *slave, char link){	struct port *port;	port = &(SLAVE_AD_INFO(slave).port);	// if slave is null, the whole port is not initialized	if (!port->slave) {		printk(KERN_WARNING DRV_NAME ": Warning: link status changed for uninitialized port on %s\n",			slave->dev->name);		return;	}	// on link down we are zeroing duplex and speed since some of the adaptors(ce1000.lan) report full duplex/speed instead of N/A(duplex) / 0(speed)	// on link up we are forcing recheck on the duplex and speed since some of he adaptors(ce1000.lan) report	if (link == BOND_LINK_UP) {		port->is_enabled = 1;		port->actor_admin_port_key &= ~AD_DUPLEX_KEY_BITS;		port->actor_oper_port_key=port->actor_admin_port_key |= __get_duplex(port);		port->actor_admin_port_key &= ~AD_SPEED_KEY_BITS;		port->actor_oper_port_key=port->actor_admin_port_key |= (__get_link_speed(port) << 1);	} else {		/* link has failed */		port->is_enabled = 0;		port->actor_admin_port_key &= ~AD_DUPLEX_KEY_BITS;		port->actor_oper_port_key= (port->actor_admin_port_key &= ~AD_SPEED_KEY_BITS);	}	//BOND_PRINT_DBG(("Port %d changed link status to %s", port->actor_port_number, ((link == BOND_LINK_UP)?"UP":"DOWN")));	// there is no need to reselect a new aggregator, just signal the	// state machines to reinitialize	port->sm_vars |= AD_PORT_BEGIN;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/4e0952c74ee450ded86e8946ce58ea8dfd05b007/bond_3ad.c/buggy/drivers/net/bonding/bond_3ad.c