Hi Stephen,

On 8/15/2025 12:59 AM, Stephen Hemminger wrote:
> On Thu, 14 Aug 2025 10:52:42 +0800
> Bingbin Chen <chen.bing...@zte.com.cn> wrote:
> 
>> +            } else {
>> +                    entry = calloc(1, sizeof(struct rte_flow));
>> +                    entry_flow = calloc(1, sizeof(struct zxdh_flow));
>> +                    TAILQ_FOREACH(entry, &hw->dh_flow_list, next) {
>> +                            entry_flow = (struct zxdh_flow 
>> *)entry->driver_flow;
>> +                            
>> offlow_key_dump(&entry_flow->flowentry.fd_flow.key,
>> +                                            
>> &entry_flow->flowentry.fd_flow.key_mask, file);
>> +                            
>> offlow_result_dump(&entry_flow->flowentry.fd_flow.result, file);
>> +                    }
>> +                    rte_free(entry_flow);
>> +                    rte_free(entry)
> 
> Use the right free function!
> 
> ==== 20 line log output for Ubuntu 24.04 (dpdk_unit_test): ====
> ../drivers/net/zxdh/zxdh_flow.c:641:36: note: returned from 'calloc'
> 641 |                         key_mask = calloc(1, sizeof(struct fd_flow_key) 
> * ZXDH_MAX_FLOW_NUM);
> |                                    
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/net/zxdh/zxdh_flow.c:689:9: error: 'rte_free' called on pointer 
> returned from a mismatched allocation function [-Werror=mismatched-dealloc]
> 689 |         rte_free(key);
> |         ^~~~~~~~~~~~~
> ../drivers/net/zxdh/zxdh_flow.c:640:31: note: returned from 'calloc'
> 640 |                         key = calloc(1, sizeof(struct fd_flow_key) * 
> ZXDH_MAX_FLOW_NUM);
> |                               
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/net/zxdh/zxdh_flow.c:690:9: error: 'rte_free' called on pointer 
> returned from a mismatched allocation function [-Werror=mismatched-dealloc]
> 690 |         rte_free(fd_entry);
> |         ^~~~~~~~~~~~~~~~~~
> ../drivers/net/zxdh/zxdh_flow.c:639:36: note: returned from 'calloc'
> 639 |                         fd_entry = calloc(1, 
> sizeof(ZXDH_DTB_ACL_ENTRY_INFO_T) * ZXDH_MAX_FLOW_NUM);
> |                                    
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors

Just curiosity, which test catch this error? There are no driver rte_flow API 
test in meson test as I know.

Thanks


Reply via email to