Re: [PATCH] dma-debug: Fix deadlock with netconsole or other driversthat use the DMA API

From: Roland Dreier
Date: Thu Apr 19 2012 - 19:37:18 EST


On Thu, Apr 19, 2012 at 11:48 AM, Andrew Morton
<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> So *any* printk can deadlock if free_entries_lock is held and
> global_disable==false?

apparently.

> In that case we're going to need much sterner fixes.  Any list_head
> operation can do a printk if list_head debugging is enabled.
> dma_debug_resize_entries() does a kfree() under free_entries_lock(!).
>
> Methinks we need a more general fix?

sigh... no good deed goes unpunished.

OK, will look at it. Just to make things even more fun, all the
err_printk() stuff can potentially deadlock on the hash bucket
lock, although that requires enough bad luck a collision to happen.

- R.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/