summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/usb/usb_mem.c3
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);