bnx2_set_power_state(bp, 0); 
bnx2_set_power_state(bp, PCI_D0); 
bnx2_open(struct net_device *dev){	struct bnx2 *bp = dev->priv;	int rc;	bnx2_set_power_state(bp, 0);	bnx2_disable_int(bp);	rc = bnx2_alloc_mem(bp);	if (rc)		return rc;	if ((CHIP_ID(bp) != CHIP_ID_5706_A0) &&		(CHIP_ID(bp) != CHIP_ID_5706_A1) &&		!disable_msi) {		if (pci_enable_msi(bp->pdev) == 0) {			bp->flags |= USING_MSI_FLAG;			rc = request_irq(bp->pdev->irq, bnx2_msi, 0, dev->name,					dev);		}		else {			rc = request_irq(bp->pdev->irq, bnx2_interrupt,					SA_SHIRQ, dev->name, dev);		}	}	else {		rc = request_irq(bp->pdev->irq, bnx2_interrupt, SA_SHIRQ,				dev->name, dev);	}	if (rc) {		bnx2_free_mem(bp);		return rc;	}	rc = bnx2_init_nic(bp);	if (rc) {		free_irq(bp->pdev->irq, dev);		if (bp->flags & USING_MSI_FLAG) {			pci_disable_msi(bp->pdev);			bp->flags &= ~USING_MSI_FLAG;		}		bnx2_free_skbs(bp);		bnx2_free_mem(bp);		return rc;	}		mod_timer(&bp->timer, jiffies + bp->current_interval);	atomic_set(&bp->intr_sem, 0);	bnx2_enable_int(bp);	if (bp->flags & USING_MSI_FLAG) {		/* Test MSI to make sure it is working		 * If MSI test fails, go back to INTx mode		 */		if (bnx2_test_intr(bp) != 0) {			printk(KERN_WARNING PFX "%s: No interrupt was generated"			       " using MSI, switching to INTx mode. Please"			       " report this failure to the PCI maintainer"			       " and include system chipset information.\n",			       bp->dev->name);			bnx2_disable_int(bp);			free_irq(bp->pdev->irq, dev);			pci_disable_msi(bp->pdev);			bp->flags &= ~USING_MSI_FLAG;			rc = bnx2_init_nic(bp);			if (!rc) {				rc = request_irq(bp->pdev->irq, bnx2_interrupt,					SA_SHIRQ, dev->name, dev);			}			if (rc) {				bnx2_free_skbs(bp);				bnx2_free_mem(bp);				del_timer_sync(&bp->timer);				return rc;			}			bnx2_enable_int(bp);		}	}	if (bp->flags & USING_MSI_FLAG) {		printk(KERN_INFO PFX "%s: using MSI\n", dev->name);	}	netif_start_queue(dev);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/829ca9a30a2ddb727981d80fabdbff2ea86bc9ea/bnx2.c/clean/drivers/net/bnx2.c