Re: [PATCH] dmaengine: plx_dma: Fix potential deadlock on &plxdev->ring_lock

From: Logan Gunthorpe
Date: Thu Jul 27 2023 - 11:31:24 EST




On 7/27/23 00:48, Chengfeng Ye wrote:
> Hi Logan and Christophe,
>
> Thanks much for the reply and reminder, and yes, spin_lock_bh() should
> be better.
>
> When I wrote the patch I thought the spin_lock_bh() cannot be nested,
> and afraid that if some outside callers called .dma_tx_status() callback
> with softirq already disable, then spin_unlock_bh() would unintentionally
> re-enable softirq(). spin_lock_irqsave() is always safer in general thus I
> used it.
>
> But I just check the document [1] about these API and found that _bh()
> can be nested. Then use spin_lock_bh() should be better due to
> performance concern.
>
>
>> So perhaps we should just revert 1d05a0bdb420?
> Then for this one I think revert 1d05a0bdb420 should be enough. May I
> ask to revert that patch, should I do anything further? (like sending
> a new patch).

Yes, I think you can just send a revert patch explaining the reasoning
further in a commit message.

Thanks,

Logan