[lvc-project] [PATCH 2/2] [v2] wifi: brcmfmac: handle possible MSI enabling error

Arend van Spriel arend.vanspriel at broadcom.com
Thu Jan 18 15:31:30 MSK 2024


+ Bjorn

On 1/18/2024 1:26 PM, Arend van Spriel wrote:
> On 6/14/2023 9:58 AM, Dmitry Antipov wrote:
>> Handle possible 'pci_enable_msi()' error in
>> 'brcmf_pcie_request_irq()', adjust related code.
>>
>> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Reviewed-by: Arend van Spriel <arend.vanspriel at broadcom.com>
>> Signed-off-by: Dmitry Antipov <dmantipov at yandex.ru>
>> ---
>> v2: rebase against wireless-next tree
>> ---
>>   .../net/wireless/broadcom/brcm80211/brcmfmac/pcie.c  | 12 ++++++++----
>>   1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c 
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
>> index 80220685f5e4..f7d9f2cbd60b 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
>> @@ -965,6 +965,7 @@ static irqreturn_t brcmf_pcie_isr_thread(int irq, 
>> void *arg)
>>   static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo)
>>   {
>> +    int ret;
>>       struct pci_dev *pdev = devinfo->pdev;
>>       struct brcmf_bus *bus = dev_get_drvdata(&pdev->dev);
>> @@ -972,16 +973,19 @@ static int brcmf_pcie_request_irq(struct 
>> brcmf_pciedev_info *devinfo)
>>       brcmf_dbg(PCIE, "Enter\n");
>> -    pci_enable_msi(pdev);
>> +    ret = pci_enable_msi(pdev);
>> +    if (ret)
>> +        return ret;
> 
> The above is sufficient. Further adjustments not needed.

Actually I am not sure about this. I think there is no harm in silently 
ignoring the failure.

>>       if (request_threaded_irq(pdev->irq, brcmf_pcie_quick_check_isr,
>>                    brcmf_pcie_isr_thread, IRQF_SHARED,
>>                    "brcmf_pcie_intr", devinfo)) {
>>           pci_disable_msi(pdev);
>>           brcmf_err(bus, "Failed to request IRQ %d\n", pdev->irq);
>> -        return -EIO;
>> +        ret = -EIO;
>> +    } else {
>> +        devinfo->irq_allocated = true;
>>       }
>> -    devinfo->irq_allocated = true;
>> -    return 0;
>> +    return ret;
>>   }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4219 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://linuxtesting.org/pipermail/lvc-project/attachments/20240118/782087fa/attachment.bin>


More information about the lvc-project mailing list