/* processes a fatal error. Bring the ports down, reset the chip, bring the ports back up.  */
static void fatal_error_task(struct work_struct *work)
/* processes a fatal error. Bring the ports down, reset the chip, bring the ports back up.  */
static void fatal_error_task(struct work_struct *work)
{
	struct adapter *adapter = container_of(work, struct adapter,
					       fatal_error_handler_task);
	int err = 0;
	rtnl_lock();
	err = t3_adapter_error(adapter, 1);
	if (!err)
		err = t3_reenable_adapter(adapter);
	if (!err)
		t3_resume_ports(adapter);
	CH_ALERT(adapter, "adapter reset %s\n", err ? "failed" : "succeeded");
	rtnl_unlock();
}