All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: "Aneesh Kumar K.V (Arm)" <aneesh.kumar@kernel.org>
Cc: linux-coco@lists.linux.dev, kvmarm@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	Jason Gunthorpe <jgg@ziepe.ca>, Marc Zyngier <maz@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Steven Price <steven.price@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Thomas Gleixner <tglx@kernel.org>, Will Deacon <will@kernel.org>
Subject: Re: [PATCH v6 4/9] dma-direct: Align CoCo shared DMA allocations to the shared granule size
Date: Fri, 18 Sep 2026 15:16:21 +0100	[thread overview]
Message-ID: <aq1HtSvwDHouhgZl@arm.com> (raw)
In-Reply-To: <20260904103452.1197239-5-aneesh.kumar@kernel.org>

On Fri, Sep 04, 2026 at 04:04:47PM +0530, Aneesh Kumar K.V (Arm) wrote:
> @@ -419,6 +420,14 @@ struct page *dma_alloc_contiguous(struct device *dev, size_t size, gfp_t gfp,
>  #ifdef CONFIG_DMA_NUMA_CMA
>  	int nid = dev_to_node(dev);
>  #endif
> +	/*
> +	 * CoCo shared allocations require CMA alignment large enough for the
> +	 * architecture's shared-buffer granule.
> +	 */
> +	if (attrs & __DMA_ATTR_ALLOC_CC_SHARED) {
> +		if (get_order(mem_cc_shared_granule_size()) > CONFIG_CMA_ALIGNMENT)
> +			return NULL;
> +	}

[...]

> diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
> index 00f422a1e896..fc4a834aaa14 100644
> --- a/kernel/dma/pool.c
> +++ b/kernel/dma/pool.c
> @@ -91,7 +91,9 @@ static int atomic_pool_expand(struct dma_gen_pool *dma_pool, size_t pool_size,
>  	void *addr;
>  	int ret = -ENOMEM;
>  	pgprot_t prot __maybe_unused;
> +	unsigned int min_encrypt_order = get_order(mem_cc_shared_granule_size());
>  
> +	pool_size = mem_cc_align_to_shared_granule(pool_size);
>  	/* Cannot allocate larger than MAX_PAGE_ORDER */
>  	order = min(get_order(pool_size), MAX_PAGE_ORDER);
>  
> @@ -102,7 +104,7 @@ static int atomic_pool_expand(struct dma_gen_pool *dma_pool, size_t pool_size,
>  							 order, false);
>  		if (!page)
>  			page = alloc_pages(gfp | __GFP_NOWARN, order);
> -	} while (!page && order-- > 0);
> +	} while (!page && order-- > min_encrypt_order);

I can see dma_alloc_from_contiguous() called by atomic_pool_expand()
clamps the alignment to CONFIG_CMA_ALIGNMENT and this one has a minimum
value of 2. Allocation will silently succeed. Not sure of the best fix,
maybe do a check here before calling the dma alloc function or just
return NULL as in dma_alloc_contiguous().

-- 
Catalin

  reply	other threads:[~2026-09-18 14:16 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-04 10:34 [PATCH v6 0/9] coco: guest: Enforce host page-size alignment for shared buffers Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 1/9] mm/mem_encrypt: Add helpers for shared-buffer alignment Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 2/9] irqchip/gic-v3-its: Align shared ITS allocations to the CoCo shared granule size Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 3/9] dma-mapping: Pass allocation attrs to contiguous allocation helpers Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 4/9] dma-direct: Align CoCo shared DMA allocations to the shared granule size Aneesh Kumar K.V (Arm)
2026-09-18 14:16   ` Catalin Marinas [this message]
2026-09-04 10:34 ` [PATCH v6 5/9] swiotlb: Align shared IO TLB pools " Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 6/9] swiotlb: Reject misaligned restricted DMA pools for CoCo guests Aneesh Kumar K.V (Arm)
2026-09-04 10:34 ` [PATCH v6 7/9] dma-buf: system_heap: Enforce shared-granule alignment for cc-shared buffers Aneesh Kumar K.V (Arm)
2026-09-18 15:16   ` Catalin Marinas
2026-09-18 15:23     ` Christian König
2026-09-18 15:36       ` Jason Gunthorpe
2026-09-18 15:39         ` Christian König
2026-09-18 16:53           ` Jason Gunthorpe
2026-09-21  9:07             ` Christian König
2026-09-21 11:51               ` Jason Gunthorpe
2026-09-21 12:05                 ` Christian König
2026-09-21 12:17                   ` Jason Gunthorpe
2026-09-21 12:24                     ` Christian König
2026-09-21 12:37                       ` Jason Gunthorpe
2026-09-21 15:26                         ` Aneesh Kumar K.V
2026-09-22 15:38                           ` Catalin Marinas
2026-09-23  5:05                             ` Aneesh Kumar K.V
2026-09-19 14:57         ` Aneesh Kumar K.V
2026-09-19 21:35           ` Jason Gunthorpe
2026-09-20  7:24             ` Aneesh Kumar K.V
2026-09-21  6:57     ` Aneesh Kumar K.V
2026-09-04 10:34 ` [PATCH v6 8/9] arm64: realm: Add RHI helper to query IPA state change alignment Aneesh Kumar K.V (Arm)
2026-09-16 16:12   ` Suzuki K Poulose
2026-09-18 10:39     ` Aneesh Kumar K.V
2026-09-04 10:34 ` [PATCH v6 9/9] arm64: realm: Expose the CCA shared granule size through mem_encrypt ops Aneesh Kumar K.V (Arm)
2026-09-16 16:17   ` Suzuki K Poulose
2026-09-18 16:52 ` [PATCH v6 0/9] coco: guest: Enforce host page-size alignment for shared buffers Catalin Marinas
2026-09-18 16:57   ` Jason Gunthorpe
2026-09-18 17:10     ` Catalin Marinas
2026-09-23  5:01     ` Aneesh Kumar K.V
2026-09-23 15:58       ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aq1HtSvwDHouhgZl@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=aneesh.kumar@kernel.org \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=maz@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=steven.price@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tglx@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.