EHCI driver accesses mmio space using regular struct pointers. In order to avoid any CPU re-ordering, memory barrier is required in async_set_schedule, especially for arm64. Without the memory barrier, there seems to be re-ordering taking place which leads to USB errors with some flash drives as well as transfer errors in netboot. BUG=chrome-os-partner:31533 BRANCH=None TEST=With the memory barrier introduced, netboot for ryu completes transfer without any error and finishes within 6-7 seconds. Change-Id: Ic05d47422312a1cddbebe3180f4f159853604440 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/213917 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org> |
||
|---|---|---|
| .. | ||
| serial | ||
| storage | ||
| timer | ||
| usb | ||
| video | ||
| cbmem_console.c | ||
| hid.c | ||
| keyboard.c | ||
| Makefile.inc | ||
| nvram.c | ||
| options.c | ||
| pci.c | ||
| speaker.c | ||