diff options
author | hselasky <hselasky@FreeBSD.org> | 2014-02-07 07:18:52 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2014-02-07 07:18:52 +0000 |
commit | 8f0b7f5c20a4692472456b9c4c253fe7e3903380 (patch) | |
tree | 2749f769e5542bf4d6e887a81d8f8f95d5c77b4f | |
parent | 16b8c9f3577f714fdb38b4bcefe9461d99c269a2 (diff) | |
download | FreeBSD-src-8f0b7f5c20a4692472456b9c4c253fe7e3903380.zip FreeBSD-src-8f0b7f5c20a4692472456b9c4c253fe7e3903380.tar.gz |
MFC r261505:
Fix a regression issue. Contiguous single segment allocations above
PAGE_SIZE bytes should only use one USB page structure. Fixes a
problem with some external drivers.
-rw-r--r-- | sys/dev/usb/usb_busdma.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_busdma.c b/sys/dev/usb/usb_busdma.c index 1808ab4..08425bf 100644 --- a/sys/dev/usb/usb_busdma.c +++ b/sys/dev/usb/usb_busdma.c @@ -454,7 +454,7 @@ usb_pc_common_mem_cb(void *arg, bus_dma_segment_t *segs, goto done; } #endif - while (1) { + while (pc->ismultiseg) { off += USB_PAGE_SIZE; if (off >= (segs->ds_len + rem)) { /* page crossing */ |