On Mon, 2013-05-27 at 18:20 +0200, Alexander Gordeev wrote:
> This fix just adds a missed call to a new PAPR function
> which should have been done with commit e61133d ("powerpc/
> pseries: Force 32 bit MSIs for devices that require it")Arguably, PAPR should allow to disable MSIs using either interface, we shouldn't have to know whether the MSI was a forced-32-bit one to be able to disable it. Brian, can you check with Colleen ? Cheers, Ben. > Signed-off-by: Alexander Gordeev <[email protected]> > --- > arch/powerpc/platforms/pseries/msi.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/msi.c > b/arch/powerpc/platforms/pseries/msi.c > index 40c7db3..2b80a68 100644 > --- a/arch/powerpc/platforms/pseries/msi.c > +++ b/arch/powerpc/platforms/pseries/msi.c > @@ -90,6 +90,7 @@ static int rtas_change_msi(struct pci_dn *pdn, u32 func, > u32 num_irqs) > static void rtas_disable_msi(struct pci_dev *pdev) > { > struct pci_dn *pdn; > + int rc; > > pdn = get_pdn(pdev); > if (!pdn) > @@ -98,7 +99,12 @@ static void rtas_disable_msi(struct pci_dev *pdev) > /* > * disabling MSI with the explicit interface also disables MSI-X > */ > - if (rtas_change_msi(pdn, RTAS_CHANGE_MSI_FN, 0) != 0) { > + if (pdn->force_32bit_msi) > + rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, 0); > + else > + rc = rtas_change_msi(pdn, RTAS_CHANGE_MSI_FN, 0); > + > + if ((rc != 0) && !pdn->force_32bit_msi) { > /* > * may have failed because explicit interface is not > * present > -- > 1.7.7.6 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

