Jason, On Mon, Nov 29 2021 at 10:01, Jason Gunthorpe wrote: > On Mon, Nov 29, 2021 at 10:26:11AM +0100, Thomas Gleixner wrote: >> After looking at all the call sites again, there is no real usage for >> this local index variable. >> >> If anything needs the index of a descriptor then it's available in the >> descriptor itself. That won't change because the low level message write >> code needs the index too and the only accessible storage there is >> msi_desc. > > Oh, that makes it simpler, just use the current desc->index as the > input to the xa_for_each_start() and then there should be no need of > hidden state? That works for alloc, but on free that's going to end up badly. >> What for? The usage sites should not have to care about the storage >> details of a facility they are using. > > Generally for_each things shouldn't have hidden state that prevents > them from being nested. It is just an unexpected design pattern.. I'm not seeing any sensible use case for: msi_for_each_desc(dev) msi_for_each_desc(dev) If that ever comes forth, I'm happy to debate this further :) Thanks, tglx