diff options
-rw-r--r-- | arch/powerpc/platforms/pseries/msi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c index 2793a1b100e6..f15222bbe136 100644 --- a/arch/powerpc/platforms/pseries/msi.c +++ b/arch/powerpc/platforms/pseries/msi.c | |||
@@ -171,6 +171,7 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) | |||
171 | struct pci_dn *pdn; | 171 | struct pci_dn *pdn; |
172 | int hwirq, virq, i, rc; | 172 | int hwirq, virq, i, rc; |
173 | struct msi_desc *entry; | 173 | struct msi_desc *entry; |
174 | struct msi_msg msg; | ||
174 | 175 | ||
175 | pdn = get_pdn(pdev); | 176 | pdn = get_pdn(pdev); |
176 | if (!pdn) | 177 | if (!pdn) |
@@ -213,6 +214,11 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) | |||
213 | 214 | ||
214 | dev_dbg(&pdev->dev, "rtas_msi: allocated virq %d\n", virq); | 215 | dev_dbg(&pdev->dev, "rtas_msi: allocated virq %d\n", virq); |
215 | set_irq_msi(virq, entry); | 216 | set_irq_msi(virq, entry); |
217 | |||
218 | /* Read config space back so we can restore after reset */ | ||
219 | read_msi_msg(virq, &msg); | ||
220 | entry->msg = msg; | ||
221 | |||
216 | unmask_msi_irq(virq); | 222 | unmask_msi_irq(virq); |
217 | } | 223 | } |
218 | 224 | ||