bnx2_set_power_state(bp, 3);
bnx2_set_power_state(bp, PCI_D3hot);
bnx2_close(struct net_device *dev){	struct bnx2 *bp = dev->priv;	u32 reset_code;	/* Calling flush_scheduled_work() may deadlock because	 * linkwatch_event() may be on the workqueue and it will try to get	 * the rtnl_lock which we are holding.	 */	while (bp->in_reset_task)		msleep(1);	bnx2_netif_stop(bp);	del_timer_sync(&bp->timer);	if (bp->wol)		reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL;	else		reset_code = BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL;	bnx2_reset_chip(bp, reset_code);	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);	bp->link_up = 0;	netif_carrier_off(bp->dev);	bnx2_set_power_state(bp, 3);	return 0;}