On Wed, Sep 23, 2026 at 02:01:08PM +0530, Aneesh Kumar K.V wrote:
I was pointed to this email thread:
https://lore.kernel.org/all/c25502d3-35c6-4281-a9ec-856f789fb1b4@arm.com
This makes a stronger case for having a CoCo shared memory allocator that captures all these restrictions. It also means that alloc_cc_shared_pages_node() needs:
if (WARN_ON_ONCE(!gfpflags_allow_blocking(gfp))) return -EINVAL;
might_sleep();
I think gfpflags_allow_blocking() is the wrong predicate. It checks for __GFP_DIRECT_RECLAIM but we have callers like dma-buf which clear the flag (see HIGH_ORDER_GFP). ITS allocations also use GFP_NOWAIT, so they'll fail here.
I'd just keep a might_sleep() in cc_make_*() and ignore gfp flags checking. Passing a no-blocking GFP flag doesn't necessarily mean the caller cannot sleep. It might also happen early enough (like its_init()) not to care - __might_resched() skips the warning if SYSTEM_BOOTING.