Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Aug 2023 14:07:30 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 044dfb356bb6 - stable/13 - msi: report error for attempt to use APIC ID > 255
Message-ID:  <202308171407.37HE7Uil097156@gitrepo.freebsd.org>

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

URL: https://cgit.FreeBSD.org/src/commit/?id=044dfb356bb6481af4de4ed0f7ef04c3b638bf71

commit 044dfb356bb6481af4de4ed0f7ef04c3b638bf71
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-08-08 23:42:09 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-08-17 14:06:39 +0000

    msi: report error for attempt to use APIC ID > 255
    
    The MSI/MSI-X address includes 8 bits to encode the Destination ID.
    Previously IDs over 255 overlapped with the fixed portion of the
    address, resulting in an invalid value (and a nonfunctional interrupt).
    
    Instead, print an error message and return EINVAL.  The interrupt will
    still not work, but the user will have a clue as to why.
    
    PR:             273022
    Reviewed by:    jhb
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D41395
    
    (cherry picked from commit cbf845052f1c2862a64e66dbaf38e887a7592474)
---
 sys/x86/x86/msi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c
index f85d4a5161e5..de8f42c0fa68 100644
--- a/sys/x86/x86/msi.c
+++ b/sys/x86/x86/msi.c
@@ -620,6 +620,11 @@ msi_map(int irq, uint64_t *addr, uint32_t *data)
 	mtx_unlock(&msi_lock);
 	error = EOPNOTSUPP;
 #endif
+	if (error == EOPNOTSUPP && msi->msi_cpu > 0xff) {
+		printf("%s: unsupported destination APIC ID %u\n", __func__,
+		    msi->msi_cpu);
+		error = EINVAL;
+	}
 	if (error == EOPNOTSUPP) {
 		*addr = INTEL_ADDR(msi);
 		*data = INTEL_DATA(msi);



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