Re: [PATCH] net: mctp: fix infinite data from mctp_dump_addrinfo
From: Jeremy Kerr
Date: Sat Jun 07 2025 - 03:47:23 EST
Hi Patrick,
[+CC Andrew, for openbmc kernel reasons]
> So, it seems like there's something more subtle happening here - or I
> have misunderstood something about the fix (I'm unsure of the
> reference to xa_for_each_start; for_each_netdev_dump only calls xa_start?).
Ah! Are you on the openbmc 6.6 backport perhaps?
It look the xa_for_each_start()-implementation of netdev_for_each_dump()
would not be compatible with a direct backport of 2d20773aec14 ("mctp: no
longer rely on net->dev_index_head[]").
This was the update for the for_each_netdev_dump() macro:
commit f22b4b55edb507a2b30981e133b66b642be4d13f
Author: Jakub Kicinski <kuba@xxxxxxxxxx>
Date: Thu Jun 13 14:33:16 2024 -0700
net: make for_each_netdev_dump() a little more bug-proof
I find the behavior of xa_for_each_start() slightly counter-intuitive.
It doesn't end the iteration by making the index point after the last
element. IOW calling xa_for_each_start() again after it "finished"
will run the body of the loop for the last valid element, instead
of doing nothing.
... which sounds like what's happening here.
Cheers,
Jeremy