Commit 2cbab3c2 authored by Shannon Nelson's avatar Shannon Nelson Committed by David S. Miller
Browse files

pds_core: use pci_reset_function for health reset



We get the benefit of all the PCI reset locking and recovery if
we use the existing pci_reset_function() that will call our
local reset handlers.

Reviewed-by: default avatarBrett Creeley <brett.creeley@amd.com>
Signed-off-by: default avatarShannon Nelson <shannon.nelson@amd.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2dac60e0
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -607,8 +607,7 @@ static void pdsc_check_pci_health(struct pdsc *pdsc)
	if (fw_status != PDS_RC_BAD_PCI)
		return;

	pdsc_reset_prepare(pdsc->pdev);
	pdsc_reset_done(pdsc->pdev);
	pci_reset_function(pdsc->pdev);
}

void pdsc_health_thread(struct work_struct *work)
+0 −3
Original line number Diff line number Diff line
@@ -284,9 +284,6 @@ int pdsc_devcmd_reset(struct pdsc *pdsc);
int pdsc_dev_init(struct pdsc *pdsc);
void pdsc_dev_uninit(struct pdsc *pdsc);

void pdsc_reset_prepare(struct pci_dev *pdev);
void pdsc_reset_done(struct pci_dev *pdev);

int pdsc_intr_alloc(struct pdsc *pdsc, char *name,
		    irq_handler_t handler, void *data);
void pdsc_intr_free(struct pdsc *pdsc, int index);
+4 −3
Original line number Diff line number Diff line
@@ -469,7 +469,7 @@ static void pdsc_restart_health_thread(struct pdsc *pdsc)
	mod_timer(&pdsc->wdtimer, jiffies + 1);
}

void pdsc_reset_prepare(struct pci_dev *pdev)
static void pdsc_reset_prepare(struct pci_dev *pdev)
{
	struct pdsc *pdsc = pci_get_drvdata(pdev);

@@ -486,10 +486,11 @@ void pdsc_reset_prepare(struct pci_dev *pdev)

	pdsc_unmap_bars(pdsc);
	pci_release_regions(pdev);
	if (pci_is_enabled(pdev))
		pci_disable_device(pdev);
}

void pdsc_reset_done(struct pci_dev *pdev)
static void pdsc_reset_done(struct pci_dev *pdev)
{
	struct pdsc *pdsc = pci_get_drvdata(pdev);
	struct device *dev = pdsc->dev;