DragonFly bugs List (threaded) for 2010-11
[issue1884] System completely freezes while listening music (devbuf: malloc limit exceeded)
vasily postnicov <firstname.lastname@example.org> added the comment:
Some code from usb_mem.c:
* Do not free the memory unconditionally since we might be called
* from an interrupt context and that is BAD.
* XXX when should we really free?
DPRINTFN(6, ("usb_block_freemem: size=%lu\n", (u_long)p->size));
logmemory(blkfree, p, NULL, p->size, p->align);
LIST_INSERT_HEAD(&usb_blk_freelist, p, next);
So it, actually, does not free memory, does it?
Here is some code from NetBSD I found:
As you can see, there is some function called usb_block_real_freemem, but (as I
understand) it is never compiled (it is between #if 0/#endif).
What is "interrupt context" and why it is so dangerous?
DragonFly issue tracker <email@example.com>