From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: dma-buf: heaps: allow heap to specify valid heap flags Date: Wed, 11 Feb 2026 16:59:18 +1000 Message-ID: In-Reply-To: <20260209153809.250835-5-jiri@resnulli.us> References: <20260209153809.250835-1-jiri@resnulli.us> <20260209153809.250835-5-jiri@resnulli.us> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Mailer: Claude Code Patch Reviewer Patch Review **Subject**: `dma-buf: heaps: allow heap to specify valid heap flags` **Files Modified**: `drivers/dma-buf/dma-heap.c`, `include/linux/dma-heap.h` **Verdict**: ❌ **REJECT** (violates design principles) #### Technical Review Adds per-heap flag validation to allow different heaps to accept different flags. **API Change** (include/linux/dma-heap.h:47-48): ```c struct dma_heap_export_info { const char *name; const struct dma_heap_ops *ops; void *priv; + unsigned long valid_heap_flags; }; ``` **Implementation** (drivers/dma-buf/dma-heap.c:127-129): ```c - if (heap_allocation->heap_flags & ~DMA_HEAP_VALID_HEAP_FLAGS) + if (heap_allocation->heap_flags & ~heap->valid_heap_flags) return -EINVAL; ``` **Technical Correctness**: The implementation is correct and functional. **Design Issues** (CRITICAL): ❌ **Violates original dma-buf heaps design philosophy** - Per maintainer John Stultz: "heap flags are supposed to be more generic allocation flags that could potentially apply to all/most of the heaps" - This was an explicit lesson learned from ION driver, which had heap-specific flags causing API chaos - Quote from review: "heap specific flags is something I intentionally avoided" ❌ **Slippery slope** - Once you allow per-heap flags, every heap will add its own flags - Leads to non-portable userspace code that must know which flags work with which heaps - Defeats the purpose of a generic dma-buf heaps API ❌ **Alternative exists** - Per maintainer recommendation: create separate heap with different name (e.g., "system_cc_decrypted") - This is the idiomatic way to expose different allocation behaviors - Keeps the flag namespace clean and generic **Maintainer Feedback**: ``` From: John Stultz "heap specific flags is something I intentionally avoided. That can be done if you just create a heap w/ a different name." ``` **Author Response**: ``` From: Jiri Pirko "Okay, will send v2 with the separate heap name instead." ``` **Recommendation**: **DROP THIS PATCH** and use separate heap name approach in v2. --- --- Generated by Claude Code Patch Reviewer