[PATCH v3 2/3] dma/ae4dma: add control path operations
fengchengwen
fengchengwen at huawei.com
Mon Jun 29 02:36:32 CEST 2026
On 6/29/2026 12:04 AM, Stephen Hemminger wrote:
> On Sat, 27 Jun 2026 08:09:09 +0800
> fengchengwen <fengchengwen at huawei.com> wrote:
>
>>>
>>> +static int
>>> +ae4dma_dev_configure(struct rte_dma_dev *dev __rte_unused,
>>> + const struct rte_dma_conf *dev_conf,
>>> + uint32_t conf_sz)
>>> +{
>>> + if (sizeof(struct rte_dma_conf) != conf_sz)
>>> + return -EINVAL;
>>
>> This may break ABI compatible
>
> Ignore that suggestion. This is a reasonable way to handle new configuration
> functions. You need/want a minimal set of values. If rte_dma_conf grows in size
> then the code can add compatability; by requiring a minimum set of values
> and then setting the rest to zero.
>
> Something like
>
> static int
> ae4dma_dev_configure(struct rte_dma_dev *dev __rte_unused,
> const struct rte_dma_conf *dev_conf,
> size_t conf_sz)
> {
> if (conf_sz < sizeof(struct orig_rte_dma_conf))
> return -EINVAL;
+1 for this
>
> struct rte_dma_conf conf;
> memcpy(&conf, dev_conf, RTE_MIN(conf_sz, sizeof(conf)));
> dev_conf = &conf;
>
> Looking at rte_dma_conf the structure has holes and dmadev lib
> doesn't validate undefined flags, so it already has future ABI problems.
Yes, it indeed
More information about the dev
mailing list