lkml.org 
[lkml]   [2024]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH V1] PCI/MSI: Fix MSI hwirq truncation
From


On 1/5/2024 10:32 PM, Kuppuswamy Sathyanarayanan wrote:
> External email: Use caution opening links or attachments
>
>
> On 1/5/2024 5:43 AM, Vidya Sagar wrote:
>> While calculating the hwirq number for an MSI interrupt, the higher
>> bits (i.e. from bit-5 onwards a.k.a domain_nr >= 32) of the PCI domain
>> number gets truncated because of the shifted value casting to u32. This
>> for example is resulting in same hwirq number for devices 0019:00:00.0
>> and 0039:00:00.0.
>>
>> So, cast the PCI domain number to u64 before left shifting it to
>> calculate hwirq number.
>
> This seems like a bug fix. Why not add Fixes: tag?
This doesn't seem to be introduced by any recent change as such. It has
been from the time the original change appeared in the mainline. I'll
give the commit ID of the original change for 'Fixes'.

>
> Is this issue detected in a platform test? Maybe including the relevant
> details about it will help reproduce the issue.
The issue is detected while running ARM's ACS test suite. But, I
couldn't give that info as there was some bug in the test suite itself
for which I raised an issue at
https://gitlab.arm.com/linux-arm/linux-acs/-/issues/2

>
>>
>> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
>> ---
>> drivers/pci/msi/irqdomain.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/pci/msi/irqdomain.c b/drivers/pci/msi/irqdomain.c
>> index c8be056c248d..cfd84a899c82 100644
>> --- a/drivers/pci/msi/irqdomain.c
>> +++ b/drivers/pci/msi/irqdomain.c
>> @@ -61,7 +61,7 @@ static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
>>
>> return (irq_hw_number_t)desc->msi_index |
>> pci_dev_id(dev) << 11 |
>> - (pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27;
>> + ((irq_hw_number_t)(pci_domain_nr(dev->bus) & 0xFFFFFFFF)) << 27;
>> }
>>
>> static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
>
> --
> Sathyanarayanan Kuppuswamy
> Linux Kernel Developer

\
 
 \ /
  Last update: 2024-01-08 12:59    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog