9317d4874b
Two latent bugs exposed by test-usb-hub-qemu.sh against a real hub topology (QEMU usb-hub with usb-kbd behind it): 1. Status-change bitmap was indexed off by one: the loop checked bit (port - 1), but USB 2.0 spec 11.12.4 defines bit 0 = hub status change and bit N = port N status change (Linux hub_irq uses bit i for port i). Every change was processed on the wrong port — a device on port N was never enumerated (its bit was read as port N+1). 2. The event loop's first action was a blocking EP1 interrupt read; when the hub delivers no immediate status-change interrupt the daemon hung before ever scanning a port. Linux hub_activate() performs a full port scan before arming the status-change endpoint; the first iteration now forces an all-ports mask with the same semantics. Also widened the fallback all-ports mask to bits 1..=ports (bit 0 = hub, skipped).