if (dev->flags & IFF_UP) err = skge_up(dev); return err; 
 if (hw->chip_id == CHIP_ID_GENESIS) xm_outaddr(hw, port, XM_SA, dev->dev_addr); else { gma_set_addr(hw, port, GM_SRC_ADDR_1L, dev->dev_addr); gma_set_addr(hw, port, GM_SRC_ADDR_2L, dev->dev_addr); } spin_unlock_bh(&hw->phy_lock);  return 0; 
static int skge_set_mac_address(struct net_device *dev, void *p){	struct skge_port *skge = netdev_priv(dev);	struct sockaddr *addr = p;	int err = 0;	if (!is_valid_ether_addr(addr->sa_data))		return -EADDRNOTAVAIL;	skge_down(dev);	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);	memcpy_toio(skge->hw->regs + B2_MAC_1 + skge->port*8,		    dev->dev_addr, ETH_ALEN);	memcpy_toio(skge->hw->regs + B2_MAC_2 + skge->port*8,		    dev->dev_addr, ETH_ALEN);	if (dev->flags & IFF_UP)		err = skge_up(dev);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c2681dd8c71c8fb4ca530f94536550fcd843aae4/skge.c/clean/drivers/net/skge.c