DragonFly BSD
DragonFly bugs List (threaded) for 2010-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[issue1884] System completely freezes while listening music (devbuf: malloc limit exceeded)

From: "vasily postnicov \(via DragonFly issue tracker\)" <sinknull@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 15 Nov 2010 10:23:05 +0000

vasily postnicov <shamaz.mazum@gmail.com> 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?
static void
usb_block_freemem(usb_dma_block_t *p)
	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 <bugs@lists.dragonflybsd.org>

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]