All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nuno Sá" <noname.nuno@gmail.com>
To: Saravana Kannan <saravanak@google.com>, nuno.sa@analog.com
Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	Lars-Peter Clausen <lars@metafoo.de>,
	Michael Hennerich <Michael.Hennerich@analog.com>,
	 Jonathan Cameron <jic23@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Olivier Moysan <olivier.moysan@foss.st.com>
Subject: Re: [PATCH v7 4/9] driver: core: allow modifying device_links flags
Date: Thu, 25 Jan 2024 09:14:20 +0100	[thread overview]
Message-ID: <8eae083af481441d83df02a1880e2aedf99efdfb.camel@gmail.com> (raw)
In-Reply-To: <CAGETcx8_0ExTG4ASb9xK-uwmubMFDx44_wUf1h3VsO8w9jJApQ@mail.gmail.com>


Hi Saravana,

Thanks for your feedback,

On Wed, 2024-01-24 at 19:21 -0800, Saravana Kannan wrote:
> On Tue, Jan 23, 2024 at 7:14 AM Nuno Sa via B4 Relay
> <devnull+nuno.sa.analog.com@kernel.org> wrote:
> > 
> > From: Nuno Sa <nuno.sa@analog.com>
> > 
> > If a device_link is previously created (eg: via
> > fw_devlink_create_devlink()) before the supplier + consumer are both
> > present and bound to their respective drivers, there's no way to set
> > DL_FLAG_AUTOREMOVE_CONSUMER anymore while one can still set
> > DL_FLAG_AUTOREMOVE_SUPPLIER. Hence, rework the flags checks to allow
> > for DL_FLAG_AUTOREMOVE_CONSUMER in the same way
> > DL_FLAG_AUTOREMOVE_SUPPLIER is done.
> 
> Curious, why do you want to set DL_FLAG_AUTOREMOVE_CONSUMER?
> Especially if fw_devlink already created the link? You are effectively
> trying to delete the link fw_devlink created if any of your devices
> unbind.
> 

Well, this is still useful in the modules case as the link will be relaxed after
all devices are initialized and that will already clear AUTOPROBE_CONSUMER
AFAIU. But, more importantly, if I'm not missing anything, in [1], fw_devlinks
will be dropped after the consumer + supplier are bound which means I definitely
want to create a link between my consumer and supplier. 

FWIW, I was misunderstanding things since I thought DL_FLAG_AUTOREMOVE_CONSUMER
was needed to make sure the consumer is unbound before the supplier. But for
that I think I can even pass 0 in the flags as I only need the link to be
MANAGED. Still, I think having DL_FLAG_AUTOREMOVE_CONSUMER makes sense.

Also note that there are more places in the kernel with
DL_FLAG_AUTOREMOVE_CONSUMER and that flag is likely being ignored in case the
link already exists.

I'm also clearing DL_FLAG_AUTOPROBE_CONSUMER as from the first check in
device_link_add(() check I realize that we can't/shouldn't have it together with
one of AUTOREMOVE_CONSUMER | AUTOREMOVE_SUPPLIER, right? At this point,
AUTOPROBE_CONSUMER is also likely not that useful anymore as both supplier and
consumer are up and I guess that's the typical case for subsystems/drivers to
call device_link_add().

And since I have your attention, it would be nice if you could look in another
sensible patch [2] that I've resended 3 times already. You're not in CC but I
see you've done quite some work in dev_links so... Completely unrelated I know
:)

[1]: https://elixir.bootlin.com/linux/latest/source/drivers/base/core.c#L1292
[2]: https://lore.kernel.org/all/20231213-fix-device-links-overlays-v1-1-f091b213777c@analog.com/#t

- Nuno Sá
> 


  reply	other threads:[~2024-01-25  8:11 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-23 15:14 [PATCH v7 0/9] iio: add new backend framework Nuno Sa
2024-01-23 15:14 ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 1/9] of: property: fix typo in io-channels Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-25  3:14   ` Saravana Kannan
2024-01-27 15:07     ` Jonathan Cameron
2024-01-27 15:16       ` Jonathan Cameron
2024-01-29  8:18       ` Nuno Sá
2024-01-29 22:33         ` Saravana Kannan
2024-01-30 10:32           ` Nuno Sá
2024-01-30 20:54             ` Rob Herring
2024-01-30 20:54   ` Rob Herring
2024-01-31  8:55     ` Nuno Sá
2024-01-23 15:14 ` [PATCH v7 2/9] dt-bindings: adc: ad9467: add new io-backend property Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 3/9] dt-bindings: adc: axi-adc: update bindings for backend framework Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 16:36   ` Rob Herring
2024-01-23 15:14 ` [PATCH v7 4/9] driver: core: allow modifying device_links flags Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-25  3:21   ` Saravana Kannan
2024-01-25  8:14     ` Nuno Sá [this message]
2024-01-25 15:34       ` Nuno Sá
2024-01-25 16:57         ` Rafael J. Wysocki
2024-01-26  8:04           ` Nuno Sá
2024-01-26 14:26             ` Nuno Sá
2024-01-27 15:15               ` Jonathan Cameron
2024-01-29  8:29                 ` Nuno Sá
2024-01-29 22:31                   ` Saravana Kannan
2024-01-30 10:54                     ` Nuno Sá
2024-01-26  0:57         ` Saravana Kannan
2024-01-26  8:05           ` Nuno Sá
2024-01-26  0:50       ` Saravana Kannan
2024-01-26  8:13         ` Nuno Sá
2024-01-26 14:27           ` Nuno Sá
2024-01-26 18:09             ` Saravana Kannan
2024-01-27  8:43               ` Nuno Sá
2024-01-23 15:14 ` [PATCH v7 5/9] of: property: add device link support for io-backends Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 6/9] iio: buffer-dmaengine: export buffer alloc and free functions Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 7/9] iio: add the IIO backend framework Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 8/9] iio: adc: ad9467: convert to " Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-23 15:14 ` [PATCH v7 9/9] iio: adc: adi-axi-adc: move " Nuno Sa
2024-01-23 15:14   ` Nuno Sa via B4 Relay
2024-01-27 15:20   ` Jonathan Cameron
2024-01-28 21:27     ` David Lechner
2024-01-29  8:15       ` Nuno Sá

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8eae083af481441d83df02a1880e2aedf99efdfb.camel@gmail.com \
    --to=noname.nuno@gmail.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jic23@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=olivier.moysan@foss.st.com \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=saravanak@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.