Re: [PATCH v6 02/11] driver core: Add dma_cleanup callback in bus_type

From: Greg Kroah-Hartman
Date: Wed Feb 23 2022 - 09:06:47 EST


On Wed, Feb 23, 2022 at 09:46:27AM -0400, Jason Gunthorpe wrote:
> On Wed, Feb 23, 2022 at 01:04:00PM +0000, Robin Murphy wrote:
>
> > 1 - tmp->driver is non-NULL because tmp is already bound.
> > 1.a - If tmp->driver->driver_managed_dma == 0, the group must currently be
> > DMA-API-owned as a whole. Regardless of what driver dev has unbound from,
> > its removal does not release someone else's DMA API (co-)ownership.
>
> This is an uncommon locking pattern, but it does work. It relies on
> the mutex being an effective synchronization barrier for an unlocked
> store:
>
> WRITE_ONCE(dev->driver, NULL)

Only the driver core should be messing with the dev->driver pointer as
when it does so, it already has the proper locks held. Do I need to
move that to a "private" location so that nothing outside of the driver
core can mess with it?

thanks,

greg k-h