On 11/13/25 4:08 PM, MJ Ponsonby wrote:
> The commit in the fixes tag extended struct dpif_execute with an
> upcall_pid member.
> 
> This member was left uninitialized in dpif_execute_helper_cb(),
> leading to Open vSwitch providing the kernel with a PID for which
> it does not have a listener, we fix this by extending the
> execute_helper_aux struct to include the previous dpif_execute struct
> which we use to carry over various values such as the mtu, hash and
> upcall_pid.
> 
> This condition is caught by one of the existing system-traffic
> tests which is extended to explicitly check for presence of lost
> upcalls in the datapath, however only with linux kernel >= 6.17.0-5.5
> and gcc < 15.
> 
> Fixes: 0d9dc8e9ca4a ("dpif-netlink: Provide original upcall pid in 'execute' 
> commands.")
> Signed-off-by: MJ Ponsonby <[email protected]>
> ---
>  lib/dpif.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)

Thanks, MJ!

This change does fix the OVN test issues for me and I no longer see
valgrind complaining about uninitialized memory.  So, I added a few
more 'Fixes' tags and applied the change to main and 3.6.

Also backported down to 3.3 to fix the mtu and hash behavior on those
older branches.

nit: new versions should not be sent in reply to previous ones, only
dpdk-dev requires that for some reason.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to