From nobody Fri May 1 21:15:21 2026 X-Original-To: dev-commits-src-all@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 4g6kMs6BH4z6cJv2 for ; Fri, 01 May 2026 21:15:21 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g6kMs33p4z3rDk for ; Fri, 01 May 2026 21:15:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777670121; 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=N+au2w6EdcmctKQ29/6lcxGadAMCfRqW7yx8eVYmlho=; b=OEuqv0wwHFKNSfVq+JPmK+h/TYkGkwGPqHAw55dSTvDfwvgeQbvj6y2CV00hbafESCuf7F u7Rqb1bmgQXYnhlHkojsNc90YNN1UUkBFrmvI0xxY3x4qb3XTiD9Zq5mzD7TZqVzrhC9EJ igOdem5VOd9hL1cKtXBwTc9TQOiX+OdowItYpL1VJvgpwRJ+KsHzDVc5pNzGAtxwThvWFn idllmeEmO/WxEOdT57iePegoBVodWQHJA5nHA8lR63Wm8hY1gBYvF/sYoA6JJ7iNV1Sbrv t9PEZNe2XryiGxtRRe6n1G1V5EzBQE++tKZvH+vcHsT9W7eUq0+hIatr0GbwkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777670121; a=rsa-sha256; cv=none; b=Pvly7lMzsGPRN8SozEQaJnkiH1Q36p/6uTJpRQ7WqDLrTZjvdbAbpXCgZ/g/33Vx22MSFk QMOPvfZLqraS01X9ExBQfkvPhB77pZj4IdYhTqVXJhYgkIV4CpdJVoihLkfJq8DrcIihSd kBMoZLNSUoFs1KbEwQJ9KMdAUbq2IeF1vKNVgLx3T+6Cnk80GAHj+xEEFY42HkRrOuo4F8 bwfos1Zdd+0VJV8nAf/S8HejeUIBmcmOmz6wUFgyj6bxEdVVzOaoJKQgSnyKA+AiP+nOMi Nt05craDrEDHBiDLv9NHze+kyvyyQl6jwiZSNvlxlJVtDrrVOsJskDkvIsU05A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777670121; 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=N+au2w6EdcmctKQ29/6lcxGadAMCfRqW7yx8eVYmlho=; b=l70QvCmmR6qYk4FlgpDnnYOBJaT6Vs3WJfhClUtCU+77QJ0dA4iApGlHJntGCl15EXLIy6 jWICh0p35r0KipjRrahu1INYD/ZjDncwzazmnIkhNMCpdkKTEqS17zZfjlLCkbGWqx9Am6 K51OTaqo2onwLA+sJvV0tzQzBov1UZZGXWyYwXAQWYuL+UJC0rcfjgtDVNs7Prvz8b2/ks d6hAKmRnulnH8uUHnidAEy9SKdivUZORxwba7rycSgpRfRu0vez2kPqvgeNWQM8AEUe12e 41U4qb9alyDQXYEq8qPKArqaWjLNUMdc3q/5w++1/spYhV7CYiwoNkEOKxlJYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g6kMs1Wvdz1Nk for ; Fri, 01 May 2026 21:15:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46cc8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 01 May 2026 21:15:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: 7c57d2499cee - main - powerpc: use local flags for bounce buffers instead of common flags List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7c57d2499ceee81aa386430d4d9e6d9080d50f94 Auto-Submitted: auto-generated Date: Fri, 01 May 2026 21:15:21 +0000 Message-Id: <69f517e9.46cc8.2cd0a9dd@gitrepo.freebsd.org> The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=7c57d2499ceee81aa386430d4d9e6d9080d50f94 commit 7c57d2499ceee81aa386430d4d9e6d9080d50f94 Author: Adrian Chadd AuthorDate: 2026-04-01 00:04:28 +0000 Commit: Adrian Chadd CommitDate: 2026-05-01 21:14:52 +0000 powerpc: use local flags for bounce buffers instead of common flags Migrate to using local flags for bounce buffers instead of the common flag field. Differential Revision: https://reviews.freebsd.org/D56208 --- sys/powerpc/powerpc/busdma_bounce.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/sys/powerpc/powerpc/busdma_bounce.c b/sys/powerpc/powerpc/busdma_bounce.c index 36c4d38cc7f6..df66f69b9f02 100644 --- a/sys/powerpc/powerpc/busdma_bounce.c +++ b/sys/powerpc/powerpc/busdma_bounce.c @@ -61,6 +61,13 @@ #define MAX_BPAGES MIN(8192, physmem/40) +enum { + BF_COULD_BOUNCE = 0x01, + BF_MIN_ALLOC_COMP = 0x02, + BF_KMEM_ALLOC = 0x04, + BF_COHERENT = 0x10, +}; + struct bus_dmamap { STAILQ_HEAD(, bounce_page) bpages; int pagesneeded; @@ -127,9 +134,6 @@ must_bounce(bus_dma_tag_t dmat, bus_addr_t paddr) return (false); } -#define BUS_DMA_COULD_BOUNCE BUS_DMA_BUS3 -#define BUS_DMA_MIN_ALLOC_COMP BUS_DMA_BUS4 - static int bounce_bus_dma_zone_setup(bus_dma_tag_t newtag) { @@ -152,7 +156,7 @@ bounce_bus_dma_zone_setup(bus_dma_tag_t newtag) error = ENOMEM; } /* Performed initial allocation */ - newtag->common.flags |= BUS_DMA_MIN_ALLOC_COMP; + newtag->bounce_flags |= BF_MIN_ALLOC_COMP; return (error); } @@ -198,12 +202,12 @@ bounce_bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, } if (newtag->common.lowaddr < ptoa((vm_paddr_t)Maxmem) && newtag->iommu == NULL) - newtag->common.flags |= BUS_DMA_COULD_BOUNCE; + newtag->bounce_flags |= BF_COULD_BOUNCE; if (newtag->common.alignment > 1) - newtag->common.flags |= BUS_DMA_COULD_BOUNCE; + newtag->bounce_flags |= BF_COULD_BOUNCE; - if (((newtag->common.flags & BUS_DMA_COULD_BOUNCE) != 0) && + if (((newtag->bounce_flags & BF_COULD_BOUNCE) != 0) && (flags & BUS_DMA_ALLOCNOW) != 0) { /* Must bounce */ error = bounce_bus_dma_zone_setup(newtag); @@ -272,7 +276,7 @@ bounce_bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp) * exclusion region, a data alignment that is stricter than 1, and/or * an active address boundary. */ - if (dmat->common.flags & BUS_DMA_COULD_BOUNCE) { + if (dmat->bounce_flags & BF_COULD_BOUNCE) { /* Must bounce */ struct bounce_zone *bz; int maxpages; @@ -291,7 +295,7 @@ bounce_bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp) maxpages = MAX_BPAGES; else maxpages = MIN(MAX_BPAGES, Maxmem -atop(dmat->common.lowaddr)); - if ((dmat->common.flags & BUS_DMA_MIN_ALLOC_COMP) == 0 + if ((dmat->bounce_flags & BF_MIN_ALLOC_COMP) == 0 || (bz->map_count > 0 && bz->total_bpages < maxpages)) { int pages; @@ -301,9 +305,9 @@ bounce_bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp) if (alloc_bounce_pages(dmat, pages) < pages) error = ENOMEM; - if ((dmat->common.flags & BUS_DMA_MIN_ALLOC_COMP) == 0) { + if ((dmat->bounce_flags & BF_MIN_ALLOC_COMP) == 0) { if (error == 0) - dmat->common.flags |= BUS_DMA_MIN_ALLOC_COMP; + dmat->bounce_flags |= BF_MIN_ALLOC_COMP; } else { error = 0; } @@ -335,7 +339,7 @@ bounce_bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp) static int bounce_bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map) { - if (dmat->common.flags & BUS_DMA_COULD_BOUNCE) { + if (dmat->bounce_flags & BF_COULD_BOUNCE) { if (STAILQ_FIRST(&map->bpages) != NULL) { CTR3(KTR_BUSDMA, "%s: tag %p error %d", __func__, dmat, EBUSY); @@ -519,7 +523,7 @@ bounce_bus_dmamap_load_phys(bus_dma_tag_t dmat, if (segs == NULL) segs = map->segments; - if ((dmat->common.flags & BUS_DMA_COULD_BOUNCE) != 0) { + if ((dmat->bounce_flags & BF_COULD_BOUNCE) != 0) { _bus_dmamap_count_phys(dmat, map, buf, buflen, flags); if (map->pagesneeded != 0) { error = _bus_dmamap_reserve_pages(dmat, map, flags); @@ -580,7 +584,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat, if (segs == NULL) segs = map->segments; - if ((dmat->common.flags & BUS_DMA_COULD_BOUNCE) != 0) { + if ((dmat->bounce_flags & BF_COULD_BOUNCE) != 0) { _bus_dmamap_count_pages(dmat, map, pmap, buf, buflen, flags); if (map->pagesneeded != 0) { error = _bus_dmamap_reserve_pages(dmat, map, flags); @@ -633,7 +637,7 @@ bounce_bus_dmamap_waitok(bus_dma_tag_t dmat, bus_dmamap_t map, void *callback_arg) { - if (dmat->common.flags & BUS_DMA_COULD_BOUNCE) { + if (dmat->bounce_flags & BF_COULD_BOUNCE) { map->dmat = dmat; map->mem = *mem; map->callback = callback;