Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Aug 2023 22:05:49 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 43e545e8e016 - main - pci: return 0 for pci_remap_intr_method MSI-X non-error case
Message-ID:  <202308142205.37EM5nnk076984@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=43e545e8e016d22346a4fe278ea2570328b20cc1

commit 43e545e8e016d22346a4fe278ea2570328b20cc1
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-08-14 20:35:34 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-08-14 21:56:15 +0000

    pci: return 0 for pci_remap_intr_method MSI-X non-error case
    
    When remapping a MSI-X vector, we would always return ENOENT, even if
    successful.  This didn't really matter, as the sole caller of
    BUS_REMAP_INTR also didn't check for errors.
    
    Return 0 if there's no error, so that we can start handling (or at least
    warning about) actual failures.
    
    Reviewed by:    jhb
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D41449
---
 sys/dev/pci/pci.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index cbdfb3acec70..9118ca7781e1 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -2447,6 +2447,8 @@ pci_remap_intr_method(device_t bus, device_t dev, u_int irq)
 	 * through all the slots that use this IRQ and update them.
 	 */
 	if (cfg->msix.msix_alloc > 0) {
+		bool found = false;
+
 		for (i = 0; i < cfg->msix.msix_alloc; i++) {
 			mv = &cfg->msix.msix_vectors[i];
 			if (mv->mv_irq == irq) {
@@ -2466,9 +2468,10 @@ pci_remap_intr_method(device_t bus, device_t dev, u_int irq)
 					pci_enable_msix(dev, j, addr, data);
 					pci_unmask_msix(dev, j);
 				}
+				found = true;
 			}
 		}
-		return (ENOENT);
+		return (found ? 0 : ENOENT);
 	}
 
 	return (ENOENT);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308142205.37EM5nnk076984>