[lvc-project] [PATCH 2/2] [v4] wifi: brcmfmac: handle possible PCI irq handling errors
Arend Van Spriel
arend.vanspriel at broadcom.com
Thu Jan 25 20:37:02 MSK 2024
On January 25, 2024 1:08:26 PM Dmitry Antipov <dmantipov at yandex.ru> wrote:
> Switch to newer 'pci_{alloc,free}_irq_vectors()' API and handle
> possible errors in 'brcmf_pcie_request_irq()'. Compile tested only.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
Crap. Did notice something else...
> Suggested-by: Bjorn Helgaas <helgaas at kernel.org>
> Signed-off-by: Dmitry Antipov <dmantipov at yandex.ru>
> ---
> v4: prefer devm_{devm_request_threaded_irq,free_irq}()', use
> 'pci_irq_vector()' and fix title (Arend, Bjorn)
> v3: switch to 'pci_{alloc,free}_irq_vectors()' per Bjorn's review
> v2: rebase against wireless-next tree
> ---
> .../broadcom/brcm80211/brcmfmac/pcie.c | 20 ++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
> index 80220685f5e4..17b855164025 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
[...]
> @@ -972,11 +973,16 @@ static int brcmf_pcie_request_irq(struct
> brcmf_pciedev_info *devinfo)
>
> brcmf_dbg(PCIE, "Enter\n");
>
> - pci_enable_msi(pdev);
> - 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);
> + ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
> + if (ret < 0)
> + return ret;
> +
> + if (devm_request_threaded_irq(&pdev->dev,
> + pci_irq_vector(pdev, 0),
> + brcmf_pcie_quick_check_isr,
> + brcmf_pcie_isr_thread, IRQF_SHARED,
> + "brcmf_pcie_intr", devinfo)) {
> + pci_free_irq_vectors(pdev);
> brcmf_err(bus, "Failed to request IRQ %d\n", pdev->irq);
Maybe better to use pci_irq_vector() here as well.
> return -EIO;
> }
-------------- 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/20240125/6581dac7/attachment.bin>
More information about the lvc-project
mailing list