On Wed, Jan 07, 2026 at 04:06:12PM +0100, Laurent Vivier wrote: > The fref union was used to convert flow_sidx_t to uint32_t for > assignment to ref.data. This is unnecessary since epoll_ref already > contains a flowside member of type flow_sidx_t, so we can assign > directly. > > This aligns with how icmp.c and other callers assign flow_sidx_t to > epoll_ref. Huh, yes. The UDP flow sockets are definitely supposed to be using ref.flowside. Sorry I didn't catch this on initial review. > > Signed-off-by: Laurent Vivier Reviewed-by: David Gibson > --- > udp_flow.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/udp_flow.c b/udp_flow.c > index 8907f2f72741..0ba788060db7 100644 > --- a/udp_flow.c > +++ b/udp_flow.c > @@ -74,10 +74,6 @@ static int udp_flow_sock(const struct ctx *c, > { > const struct flowside *side = &uflow->f.side[sidei]; > uint8_t pif = uflow->f.pif[sidei]; > - union { > - flow_sidx_t sidx; > - uint32_t data; > - } fref = { .sidx = FLOW_SIDX(uflow, sidei) }; > union epoll_ref ref; > int rc; > int s; > @@ -89,7 +85,7 @@ static int udp_flow_sock(const struct ctx *c, > } > > ref.type = EPOLL_TYPE_UDP; > - ref.data = fref.data; > + ref.flowside = FLOW_SIDX(uflow, sidei); > ref.fd = s; > > flow_epollid_set(&uflow->f, EPOLLFD_ID_DEFAULT); > -- > 2.52.0 > -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson