since the allocated space is larger that a physical page (65536 > 4096), bus_dmamem_alloc() allocates physical contiguous memory. After repeated allocations and frees, the physical memory pages will fragment and the allocation will fail.
You may need to rethink your allocation strategy, such as hold some memory allocations static between unloads and loads if your device can take non-physical contiguous memory chunks, use another allocation technique or other imaginative tricks. --Mark Tinguely. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message

