diff options
Diffstat (limited to 'sys/dev/usb/usb_mem.c')
| -rw-r--r-- | sys/dev/usb/usb_mem.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_mem.c b/sys/dev/usb/usb_mem.c index 73b309db4b1c..82b678e82b5c 100644 --- a/sys/dev/usb/usb_mem.c +++ b/sys/dev/usb/usb_mem.c @@ -142,7 +142,8 @@ usb_block_allocmem(bus_dma_tag_t tag, size_t size, size_t align, s = splusb(); /* First check the free list. */ for (p = LIST_FIRST(&usb_blk_freelist); p; p = LIST_NEXT(p, next)) { - if (p->tag == tag && p->size >= size && p->align >= align) { + if (p->tag == tag && p->size >= size && p->size < size * 2 && + p->align >= align) { LIST_REMOVE(p, next); usb_blk_nfree--; splx(s); |
