unsigned port = sky2->port; 
static void sky2_phy_task(unsigned long data){	struct sky2_port *sky2 = (struct sky2_port *) data;	struct sky2_hw *hw = sky2->hw;	unsigned port = sky2->port;	u16 istatus, phystat;	istatus = gm_phy_read(hw, port, PHY_MARV_INT_STAT);	phystat = gm_phy_read(hw, port, PHY_MARV_PHY_STAT);	if (netif_msg_intr(sky2))		printk(KERN_INFO PFX "%s: phy interrupt status 0x%x 0x%x\n",		       sky2->netdev->name, istatus, phystat);	if (istatus & PHY_M_IS_AN_COMPL) {		u16 lpa = gm_phy_read(hw, port, PHY_MARV_AUNE_LP);		if (lpa & PHY_M_AN_RF) {			printk(KERN_ERR PFX "%s: remote fault",			       sky2->netdev->name);		}		else if (hw->chip_id != CHIP_ID_YUKON_FE			 && gm_phy_read(hw, port, PHY_MARV_1000T_STAT)			 & PHY_B_1000S_MSF) {			printk(KERN_ERR PFX "%s: master/slave fault",			       sky2->netdev->name);		}		else if (!(phystat & PHY_M_PS_SPDUP_RES)) {			printk(KERN_ERR PFX "%s: speed/duplex mismatch",			       sky2->netdev->name);		}		else {			sky2->duplex = (phystat & PHY_M_PS_FULL_DUP)				? DUPLEX_FULL : DUPLEX_HALF;			sky2->speed = sky2_phy_speed(hw, phystat);						sky2->tx_pause = (phystat & PHY_M_PS_TX_P_EN) != 0;			sky2->rx_pause = (phystat & PHY_M_PS_RX_P_EN) != 0;			if ((!sky2->tx_pause && !sky2->rx_pause) ||			    (sky2->speed < SPEED_1000 && sky2->duplex == DUPLEX_HALF))				sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF);			else				sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON);			sky2_link_up(sky2);		}	} else {		if (istatus & PHY_M_IS_LSP_CHANGE)			sky2->speed = sky2_phy_speed(hw, phystat);		if (istatus & PHY_M_IS_DUP_CHANGE)			sky2->duplex = (phystat & PHY_M_PS_FULL_DUP) ? DUPLEX_FULL : DUPLEX_HALF;		if (istatus & PHY_M_IS_LST_CHANGE) {			if (phystat & PHY_M_PS_LINK_UP)				sky2_link_up(sky2);			else				sky2_link_down(sky2);		}	}	local_irq_disable();	hw->intr_mask |= (port == 0) ? Y2_IS_IRQ_PHY1 : Y2_IS_IRQ_PHY2;	sky2_write32(hw, B0_IMSK, hw->intr_mask);	local_irq_enable();}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/793b883ed12a6ae6e2901ddb5e038b77d6f0c0ac/sky2.c/buggy/drivers/net/sky2.c