From nobody Tue Feb 04 12:26:37 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YnMzy5d2Tz5mkCj; Tue, 04 Feb 2025 12:26:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YnMzy1Jw3z3b7G; Tue, 04 Feb 2025 12:26:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738671998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=265G761Zn1I7rbIBImtJOuQrNkLF+xZ4/00TsTAHYqU=; b=ue4Au/TZ10upntbTNuJuDY7Vo+WbdmuP+PMnbTa1UQq3+Ie42OJxBeCteOd6vIhX6+1iUB CSi7XuTVDsebA/j5a3tj9VjQGC4602GtNYGVV5afAzdNWzl6715k/+ERaGysyOD0aExSKY zZdL3t1hgutd8JP/U32XpLscGF8ebKAeZO/Ee8tIIXFb5Vwk8DYgyRPOGCdaWuK6uK+VWK wGXb020ihYKaLl/U8KE7Hx2LMjmwfrZm3dyUTZxCpoMUQBJpPRXOjpCWL//druhTx+emm1 HKVB+kByrUv6eI+jjZ1J3FT7Kw1VdGPFOVP7ODEmGIG3QQf12yDcPXm0Rlbzfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738671998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=265G761Zn1I7rbIBImtJOuQrNkLF+xZ4/00TsTAHYqU=; b=TU4+zpDWl+ibbzZs8j82r5rsZ2PrkK/6MIDZbXIGIMBleVW7W6KYCi5q0M8IeNsi5Ldxit FofldTKAdUZs71i7QQMsJ7eM5J/b4a9A6hmr17cO76xFT4EoIRKmX8lDAhCG2Uq09Dg94C b08TgujS18DWp4Mqo9GgknMSAjDgHfWOb9LVSJ2mFDeJ+/5IEhu4VnCW7DjhCAV3HqQ/8b 1/U/xORv9Z1I5uQtBYu83YTNvTZE3TNT7b/cmv31iMWozieh6UiSaHp8fsiNTe2t28J1XW Vj6RVSPBcihrJPqOlrhAnTjCQXZAIsPbvmWf5Ym7aB8mrT0U5X3msEMAjr9YIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1738671998; a=rsa-sha256; cv=none; b=hQ61A1Feosro2KPBu9Fg/LOB+GiZY/6gqZDEIxHySxlM/+M4Tcchl5Sej7qGwAohx5Oui6 n+L/BHQnCTBFZ62UFppWHNHrbzibWsaRSJG5oOhEq2TWCzl7BjWl5p/0iPC0I+w/VZf0mw uuOi/gGM2aLJlYl2G7CVHkcNx2mLTdonQw1p4BEM2cWwuu0lmRWS0Bm2JSKZ7cgwJeOBwy 6Ycb595MRSpBQMAUN+xqHYKz7quk7RLVnMsdDg7bVcd0nhwxrA0aZf7GQmd8mML830ll33 xKtDGa4Xg5OBjLZJJo7YYzyz3OwMkJnen7kT5K17YW0o8azlBFtalILrloOqUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YnMzx6k5qz1L14; Tue, 04 Feb 2025 12:26:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 514CQb3V040951; Tue, 4 Feb 2025 12:26:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 514CQbta040948; Tue, 4 Feb 2025 12:26:37 GMT (envelope-from git) Date: Tue, 4 Feb 2025 12:26:37 GMT Message-Id: <202502041226.514CQbta040948@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 8fd88aeedb1e - main - arm64/its: Support devices not behind an iommu List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8fd88aeedb1e4f34d6c127cf66fa3e7ecb3f5168 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=8fd88aeedb1e4f34d6c127cf66fa3e7ecb3f5168 commit 8fd88aeedb1e4f34d6c127cf66fa3e7ecb3f5168 Author: Andrew Turner AuthorDate: 2025-02-04 11:57:21 +0000 Commit: Andrew Turner CommitDate: 2025-02-04 12:02:00 +0000 arm64/its: Support devices not behind an iommu When the IOMMU option is enabled but a device doesn't have an IOMMU this will return an error. If the device is really behind an IOMMU then it will fail later, and if not this is needed to allocate MSI and MSI-X interrupts. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D48725 --- sys/arm64/arm64/gicv3_its.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/gicv3_its.c b/sys/arm64/arm64/gicv3_its.c index 9224e03dec52..77d1936d8c95 100644 --- a/sys/arm64/arm64/gicv3_its.c +++ b/sys/arm64/arm64/gicv3_its.c @@ -1744,9 +1744,15 @@ gicv3_iommu_init(device_t dev, device_t child, struct iommu_domain **domain) int error; sc = device_get_softc(dev); + /* + * Get the context. If no context is found then the device isn't + * behind an IOMMU so no setup is needed. + */ ctx = iommu_get_dev_ctx(child); - if (ctx == NULL) - return (ENXIO); + if (ctx == NULL) { + *domain = NULL; + return (0); + } /* Map the page containing the GITS_TRANSLATER register. */ error = iommu_map_msi(ctx, PAGE_SIZE, 0, IOMMU_MAP_ENTRY_WRITE, IOMMU_MF_CANWAIT, &sc->ma);