Re: [PATCH] powerpc/pseries: Force 32 bit MSIs when tearing down

From: Brian King
Date: Wed May 29 2013 - 17:13:44 EST


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@xxxxxxxxxx>
>> ---
>> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/