On Thu, Dec 03, 2015 at 12:07:26PM +0100, Takashi Iwai wrote:
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().
I know that's what you meant - that should be done by preallocating the cache (which can be done with defaults) and providing your own lock if there's a spinlock already held (since we use _irqsave() which IIRC isn't nestable). We can also use GFP_ATOMIC for some of the allocations in reasonable use cases but it's not in general supported.