Call yield() while waiting for USB control transfers to complete.
diff --git a/src/usb-ohci.c b/src/usb-ohci.c
index 15841dc..b62090f 100644
--- a/src/usb-ohci.c
+++ b/src/usb-ohci.c
@@ -185,7 +185,7 @@
dprintf(1, "Timeout on wait_ed %p\n", ed);
return -1;
}
- cpu_relax();
+ yield();
}
}
diff --git a/src/usb-uhci.c b/src/usb-uhci.c
index cc01234..64531a9 100644
--- a/src/usb-uhci.c
+++ b/src/usb-uhci.c
@@ -166,7 +166,7 @@
, inw(cntl->uhci.iobase + USBSTS));
return -1;
}
- cpu_relax();
+ yield();
}
}