flush_scheduled_work(); 
/* 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_close(struct net_device *dev){	struct bnx2 *bp = dev->priv;	u32 reset_code;	flush_scheduled_work();	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;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/afdc08b9f9a7174d7912a160f657f39d46379b5e/bnx2.c/clean/drivers/net/bnx2.c