On Thu, 2015-12-03 at 12:07 +0100, Takashi Iwai wrote:
On Thu, 03 Dec 2015 12:01:58 +0100, Mark Brown wrote:
On Thu, Dec 03, 2015 at 10:41:38AM +0100, Takashi Iwai wrote:
While reading this patch, I wondered how regmap can be used safely in an irq-disabled context. Mark, do we have any API for that?
We can use user supplied locks or spin_lock_irqsave().
I meant how to guarantee to make regmap_read() working in an already spin-locked context, typically in an irq handler? regmap_read() involves with the regcache and it may invoke kmalloc().
Yes, we were hit by this before. When using devm_regmap_init_mmio() for regmap, it uses spin_lock_irqsave() before every read/write, and if cache type is RBTREE, then kmalloc will occur after spin_lock_irqsave() and it brings warning. That's why we changed RBTREE to NONE. Setting cache type to FLAT will also work, but we think our register accessing is fast enough without need of cache.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel