Commit f8320f05 authored by Rajesh Borundia's avatar Rajesh Borundia Committed by David S. Miller
Browse files

netxen: fix for kdump



When the crash kernel is loaded after crash, the device is in unknown state.
So reset the device contexts prior to its creation in case of kdump,
depending upon kernel parameter reset_devices.

Signed-off-by: default avatarRajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bdb0f867
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -254,6 +254,19 @@ out_free_rq:
	return err;
}

static void
nx_fw_cmd_reset_ctx(struct netxen_adapter *adapter)
{

	netxen_issue_cmd(adapter, adapter->ahw.pci_func, NXHAL_VERSION,
			adapter->ahw.pci_func, NX_DESTROY_CTX_RESET, 0,
			NX_CDRP_CMD_DESTROY_RX_CTX);

	netxen_issue_cmd(adapter, adapter->ahw.pci_func, NXHAL_VERSION,
			adapter->ahw.pci_func, NX_DESTROY_CTX_RESET, 0,
			NX_CDRP_CMD_DESTROY_TX_CTX);
}

static void
nx_fw_cmd_destroy_rx_ctx(struct netxen_adapter *adapter)
{
@@ -685,7 +698,8 @@ int netxen_alloc_hw_resources(struct netxen_adapter *adapter)
	if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
		if (test_and_set_bit(__NX_FW_ATTACHED, &adapter->state))
			goto done;

		if (reset_devices)
			nx_fw_cmd_reset_ctx(adapter);
		err = nx_fw_cmd_create_rx_ctx(adapter);
		if (err)
			goto err_out_free;