[PATCH 0/3] dmaengine: Use non-atomic bit ops where safe

Peng Fan peng.fan at oss.nxp.com
Thu Sep 3 19:08:25 PDT 2026


On Thu, Sep 03, 2026 at 02:29:45PM -0500, Frank Li wrote:
>On Thu, Sep 03, 2026 at 10:16:11PM +0800, Peng Fan (OSS) wrote:
>> dma_cap_set()/dma_cap_clear() and imx-sdma event_mask setup use atomic
>> set_bit()/clear_bit() in contexts where no concurrent access is
>> possible:
>>
>> - dma_cap_set()/dma_cap_clear() are called exclusively during driver
>>   probe, before dma_async_device_register() makes the device visible.
>> - imx-sdma event_mask[] is zeroed and configured during channel setup
>>   while the channel is disabled.
>>
>> Switch both to non-atomic __set_bit()/__clear_bit() equivalents.
>
>Any benefit to switch?

Drop patch 1, I thought there were no cocurrent access.

For patch 2: The driver already uses the non-atomic __set_bit/__clear_bit APIs,
I think no sense to use atomic APIs in sdma_set_watermarklevel_for_p2p, or
I may miss something.

For patch 3: Use __assign_bit to save code lines.

Thanks
Peng
>
>Frank
>
>>
>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>> ---
>> Peng Fan (3):
>>       dmaengine: Use non-atomic bit ops for cap_mask manipulation
>>       dmaengine: imx-sdma: Use non-atomic __set_bit() for event_mask setup
>>       dmaengine: imx-sdma: Use __assign_bit() for ownership configuration
>>
>>  drivers/dma/imx-sdma.c    | 21 +++++----------------
>>  include/linux/dmaengine.h |  4 ++--
>>  2 files changed, 7 insertions(+), 18 deletions(-)
>> ---
>> base-commit: 89c07d98716a13454ec3fd9f97689e812cc71bd4
>> change-id: 20260903-dma-mask-ddf64d770f7d
>>
>> Best regards,
>> --
>> Peng Fan <peng.fan at nxp.com>
>>
>
>



More information about the linux-arm-kernel mailing list