Commit 28158cd "powerpc/eeh: Enhance pcibios_set_pcie_reset_state()"
introduced a fix for a problem where certain configurations could lead to
pci_reset_function() destroying the state of PCI devices other than the one
specified.
Unfortunately, the fix has a trivial bug - it calls pci_save_state() again,
when it should be calling pci_restore_state(). This corrects the problem.
Cc: Gavin Shan <[email protected]>
Signed-off-by: David Gibson <[email protected]>
---
arch/powerpc/kernel/eeh.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
index 9ee61d1..ece4181 100644
--- a/arch/powerpc/kernel/eeh.c
+++ b/arch/powerpc/kernel/eeh.c
@@ -719,7 +719,7 @@ static void *eeh_restore_dev_state(void *data, void *userdata)
/* The caller should restore state for the specified device */
if (pdev != dev)
- pci_save_state(pdev);
+ pci_restore_state(pdev);
return NULL;
}
--
2.4.2
David Gibson <[email protected]> wrote on 03/06/2015 14:52:59:
> From: David Gibson <[email protected]>
> To: Guo Wen Shan/Australia/IBM@IBMAU, [email protected]
> Cc: [email protected], [email protected], linuxppc-
> [email protected], [email protected], David Gibson
> <[email protected]>
> Date: 03/06/2015 14:53
> Subject: [PATCH] powerpc/eeh: Fix trivial error in eeh_restore_dev_state
()
>
> Commit 28158cd "powerpc/eeh: Enhance pcibios_set_pcie_reset_state()"
> introduced a fix for a problem where certain configurations could lead to
> pci_reset_function() destroying the state of PCI devices other than the
one
> specified.
>
> Unfortunately, the fix has a trivial bug - it calls pci_save_state()
again,
> when it should be calling pci_restore_state(). This corrects the
problem.
>
> Cc: Gavin Shan <[email protected]>
> Signed-off-by: David Gibson <[email protected]>
Acked-by: Gavin Shan <[email protected]>
Thanks,
Gavin
> ---
> arch/powerpc/kernel/eeh.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
> index 9ee61d1..ece4181 100644
> --- a/arch/powerpc/kernel/eeh.c
> +++ b/arch/powerpc/kernel/eeh.c
> @@ -719,7 +719,7 @@ static void *eeh_restore_dev_state(void *data,
> void *userdata)
>
> /* The caller should restore state for the specified device */
> if (pdev != dev)
> - pci_save_state(pdev);
> + pci_restore_state(pdev);
>
> return NULL;
> }
> --
> 2.4.2
>