Deadlock avoidance with virtual channels