Re: spi: Add call to spi_slave_abort() function when spidev driver is released

From: Mark Brown
Date: Thu Sep 26 2019 - 11:17:59 EST


On Thu, Sep 26, 2019 at 04:06:45PM +0200, Lukasz Majewski wrote:
> > On Thu, Sep 26, 2019 at 2:49 PM Lukasz Majewski <lukma@xxxxxxx> wrote:

> > > The question is if we shall call the spi_slave_abort() when
> > > cleaning up spi after releasing last reference, or each time
> > > release callback is called ?

> > TBH, I don't know. Is it realistic that there are multiple opens?

> I'm using on my setup only one test program to use /dev/spidevX.Y and
> /dev/spidevA.B (loopback with wired connection).

> However, you also shall be able to connect via ssh and run the same
> setup in parallel...

It doesn't seem entirely realistic, but I can imagine cases like
fork()/exec() where we end up with two copies of the file open
but end up immediately closing one.

> > That means the abort is called only for the last user.
> > And only if the underlying device still exists. Which means that if
> > it has disappeared (how can that happen? spidev unbind?),

> In my case, I just disconnect some SPI signals and the test program
> just hangs. I do need to ctrl+c to stop it (or use timeout).

> From my debugging the .release callback is called each time the program
> is aborted (either with ctrl+c or timeout).

Should be on file close IIRC.

Attachment: signature.asc
Description: PGP signature