Hi,
Since qbus_create_inplace() adds each new child bus to the front of the parent's child_bus list, this means that qbus_find_recursive() will encounter the last-added bus first, whereas usb_bus_find() will get the first-added bus.
Quite a while back I've tried to switch qdev from QLIST to QTAILQ exactly to allow adding stuff to the tail of the lists(s), because that feels more natural to me than the current ordering. "info qtree" is upside-down too ;)
Gave up after resending it one or two times, the forgot about it, wasn't *that* important to me.
Is there anything we can do to fix this inconsistency [*], or are we tied to the existing enumeration orders in both cases for compatibility with users with currently-working command lines or configurations?
Could be we break something. I think it is unlikely though. Multiple busses of the same type are pretty uncommon, and any examples with multiple lsi adapters (for example) advertise explicitly assign devices via bus=. libvirt uses bus= everywhere too.
cheers, Gerd