Re: [PATCH v3] regmap: add iopoll-like atomic polling macro

From: Sameer Pujar
Date: Thu Jan 09 2020 - 23:50:14 EST



On 1/9/2020 7:27 PM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


09.01.2020 10:24, Sameer Pujar ÐÐÑÐÑ:
On 1/9/2020 11:30 AM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


09.01.2020 08:09, Sameer Pujar ÐÐÑÐÑ:
This patch adds a macro 'regmap_read_poll_timeout_atomic' that works
similar to 'readx_poll_timeout_atomic' defined in linux/iopoll.h; This
is atomic version of already available 'regmap_read_poll_timeout' macro.

It should be noted that above atomic macro cannot be used by all
regmaps.
If the regmap is set up for atomic use (flat or no cache and MMIO) then
only it can use.

Signed-off-by: Sameer Pujar <spujar@xxxxxxxxxx>
---
Could you please explain what is the targeted use-case here?
I was trying to use regmap_read_poll_timeout() to poll for status change
of a register. This resulted in "BUG: scheduling while atomic". The
callback function, in which I was trying to use the macro, runs in
atomic context. Hence new atomic macro is added. I was checking ALSA
playback/capture and trigger() callback had to monitor some register
status.

In general, the new macro can be used in atomic callbacks where regmap
interface is used and polling is required.

You should send a full patchset because it may turn out that the patch
which makes use of the new feature isn't correct or maybe the new
feature isn't really needed.

If there was a previous discussion about the need for this change, then
you should provide a link to that discussion.

Please note that usually changes without a real use-case in kernel are
not getting picked up or they are getting removed later on if nobody
makes use of them, so I assume this is a kind of an RFC patch for now.

OK. I will send this as part of the complete series. Thank you.