HVM guest I/O port accesses are subject to either emulation or at least translation. Translations are managed by the device model (via XENDOMCTLioport_mapping), and hence the linked list used may changed at any time. Traversal of those lists (while handling guest I/O port accesses) therefore needs synchronizing with updates, which was missing so far.