[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <51A66F79.7070007@linux.vnet.ibm.com>
Date: Wed, 29 May 2013 16:13:29 -0500
From: Brian King <brking@...ux.vnet.ibm.com>
To: Benjamin Herrenschmidt <benh@...nel.crashing.org>
CC: Alexander Gordeev <agordeev@...hat.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] powerpc/pseries: Force 32 bit MSIs when tearing down
On 05/27/2013 04:52 PM, Benjamin Herrenschmidt wrote:
> 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 ?
That is correct, and is the exact path we went down when I tested the code
that is currently upstream. I don't think this patch should be needed.
Thanks,
Brian
>
> Cheers,
> Ben.
>
>> Signed-off-by: Alexander Gordeev <agordeev@...hat.com>
>> ---
>> 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
>>
>>
>
>
--
Brian King
Power Linux I/O
IBM Linux Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists